Compare commits

...

2646 Commits

Author SHA1 Message Date
Nick O'Leary
8d98b228ab Bump 0.18.2 2018-02-06 15:28:43 +00:00
Nick O'Leary
5b4c42ff05 Update changelog 2018-02-06 14:30:31 +00:00
Dave Conway-Jones
a596a4551a undo exec node change (investigate test fail) 2018-02-06 11:42:33 +00:00
Dave Conway-Jones
0968f96982 add a default keepalive to tcp client mode
to address #1469
2018-02-06 11:36:14 +00:00
Dave Conway-Jones
5931e13b9c move node.send in exec and httprequest nodes
just in case
2018-02-06 11:36:13 +00:00
Nick O'Leary
415c768ae4 Filter out %D from git log command for older git versions 2018-02-06 11:00:11 +00:00
Nick O'Leary
b4c8bf21d5 Ensure projects are created as logged in user 2018-02-06 10:38:41 +00:00
Nick O'Leary
5fe5db603d Better error handling/reporting in project creation 2018-02-05 15:59:11 +00:00
Nick O'Leary
9f7dd7f5d4 Add Project Settings menu option 2018-02-05 10:58:09 +00:00
Nick O'Leary
e6d32aab7b Refresh vc sidebar on remote add/remove 2018-02-05 10:10:26 +00:00
Dave Conway-Jones
08bd6d963c Ensure send is last thing trigger does 2018-02-04 21:25:25 +00:00
Dave Conway-Jones
ff05fb14a6 ensure trigger doesn't set two simultaneous timeouts 2018-02-04 20:17:43 +00:00
Nick O'Leary
22d942b705 Fix auth prompt for ssh repos 2018-02-03 23:44:19 +00:00
Nick O'Leary
0526372f28 Bump rbe dependency 2018-02-03 20:48:43 +00:00
Dave Conway-Jones
f99051906a add missing property select var to HTML node 2018-02-02 23:40:01 +00:00
Nick O'Leary
d1f7fd8bfd Prevent http git urls from including username/pword 2018-02-02 22:43:29 +00:00
Nick O'Leary
fc1436a96d Fix fetch auth handling on non-default remote 2018-02-02 16:26:55 +00:00
Nick O'Leary
d21568497b Avoid exception if git not installed 2018-02-02 13:46:22 +00:00
Nick O'Leary
df4beef060 Check version of git client on startup 2018-02-02 11:37:18 +00:00
Dave Conway-Jones
a52f195d41 undo dumb non-fix to trigger. 2018-02-02 10:28:22 +00:00
Dave Conway-Jones
419019a656 add check for property to trigger (temporary fix for debug) 2018-02-02 10:23:28 +00:00
Nick O'Leary
42b5635485 Merge pull request #1603 from Kroderia/master
Fix and Add some Chinese translations
2018-02-01 22:42:19 +00:00
Nick O'Leary
a8fc5b01f3 Don't assume node has defaults when exporting icon property 2018-02-01 22:28:05 +00:00
Nick O'Leary
ead841d844 Update CHANGELOG 2018-02-01 20:37:06 +00:00
Nick O'Leary
67d7930aef Remember to disable projects in editor when git not found 2018-02-01 20:35:18 +00:00
Nick O'Leary
6f69995f4e Update sort/batch docs 2018-02-01 20:21:36 +00:00
Kroderia
05252fa239 Fix and Add some Chinese translations 2018-02-02 02:57:11 +08:00
Nick O'Leary
1377439bb0 Fix pull/push when no tracked branch 2018-02-01 17:08:22 +00:00
Nick O'Leary
407123a280 Add git_pull_unrelated_history handling 2018-02-01 17:07:46 +00:00
Nick O'Leary
750dd590c8 Handle delete of last remote in project settings 2018-02-01 11:25:56 +00:00
Nick O'Leary
44112a9d18 Bump packte to 0.18.1 2018-02-01 10:54:16 +00:00
Nick O'Leary
b220bf0d99 Update changelog 2018-02-01 10:53:48 +00:00
Nick O'Leary
d0d93d7070 Handle more repo clone error cases 2018-02-01 10:42:14 +00:00
Nick O'Leary
4117961236 Relax validation of git urls 2018-02-01 10:42:04 +00:00
Nick O'Leary
68a3d71ee6 Revalidate project name on return to project-details view 2018-02-01 09:47:29 +00:00
Dave Conway-Jones
bf5d741f0d Trigger node migration - ensure bytopic not blank 2018-02-01 09:21:16 +00:00
Nick O'Leary
55a33bc408 Add HEAD to list of methods with no body in http req node 2018-01-31 23:54:06 +00:00
Nick O'Leary
3ec35ed119 Do not include payload in GET requests
Fixes #1598

This regression was caused by #1531 - allowing the http request node
use any method.

The full fix is to identify which common verbs must not include a payload
and exclude them. GET needs fixing right now.
2018-01-31 23:39:26 +00:00
Nick O'Leary
3d8d6953ec Avoid unecessary project refresh on branch-switch
Fixes #1597
2018-01-31 23:16:38 +00:00
Nick O'Leary
528db67c34 Add support for file:// git urls 2018-01-31 22:34:18 +00:00
Nick O'Leary
b847e962aa Handle project first-run without existing flow file 2018-01-31 21:31:45 +00:00
Nick O'Leary
bbb9a3c63b Merge pull request #1595 from kazuhitoyokoi/master
Update messages in jsonata.json
2018-01-31 14:07:55 +00:00
Kazuhito Yokoi
322cebc48c Update messages in jsonata.json 2018-01-31 10:45:31 +00:00
Nick O'Leary
1cceb3d880 Merge pull request #1594 from kazuhitoyokoi/master-japanese
Update Japanese translations in messages.json
2018-01-31 09:50:54 +00:00
Kazuhito Yokoi
effc64db9a Update Japanese translations in messages.json 2018-01-31 05:02:20 +00:00
Nick O'Leary
7e5bd5f2c1 Update to JSONata 1.5.0 2018-01-30 20:36:23 +00:00
Nick O'Leary
e32cc4d1af Fix typo in CSV node help 2018-01-30 20:23:06 +00:00
Dave Conway-Jones
09a3cd850e mention parts in css, yams 2018-01-30 16:11:26 +00:00
Dave Conway-Jones
b0c876019a let HTML node use alternative msg property 2018-01-30 16:11:25 +00:00
Nick O'Leary
6725f870d2 Merge pull request #1591 from node-red-hitachi/fix-reduce-init
fix reduce mode of JOIN node with JSONata $append function
2018-01-30 13:37:07 +00:00
Hiroyasu Nishiyama
0e5adc1f0a merge upstream/master 2018-01-30 22:15:24 +09:00
Dave Conway-Jones
57ebb93dc0 trigger node - add mention of per topic capability to info. 2018-01-30 11:16:04 +00:00
Nick O'Leary
05dc0bfa1d Merge pull request #1590 from camlow325/allow-at-sign-in-module-examples-path
Allow at sign in module examples path
2018-01-30 10:33:24 +00:00
Jeremy Barlow
2d0264116c Handle at sign in module example path for UI import menu
This commit allows an example from an npm package that has
an org scoped name (which includes an @ character) to be abbreviated
properly in the import menu - i.e., showing 'myexample' for a package
name of '@myorg/node-red-contrib-myexample' rather than
'@myorg/node red-contrib-myexample'.
2018-01-29 15:27:34 -08:00
Jeremy Barlow
3938550ea8 Support at sign in module examples path for flows endpoint
This commit allows an example from an npm package that has
an org scoped name (which includes an @ character) to be retrieved and
loaded properly through the flows endpoint.
2018-01-29 15:23:19 -08:00
Nick O'Leary
9f0c567794 Fix authWriter test again 2018-01-29 21:58:53 +00:00
Nick O'Leary
8672fcd2bb Fix authServer on Windows path
Fixes #1588
2018-01-29 21:47:20 +00:00
Hiroyasu Nishiyama
3f2a92e801 evaluate init value on each reduction 2018-01-29 22:30:47 +09:00
Nick O'Leary
771e43583a Typo in Batch node help 2018-01-29 11:21:43 +00:00
Nick O'Leary
9353d5c1c4 Merge pull request #1585 from node-red-hitachi/fix-HTML
fix HTML node not to reuse message object for multiple output messages
2018-01-29 11:16:20 +00:00
Nick O'Leary
5e462f0f02 Merge pull request #1586 from node-red-hitachi/fix-file-in-parts
fix behavior of "a msg per line" mode of FILE IN node with empty line
2018-01-29 11:14:07 +00:00
Nick O'Leary
a25f6fec9f Merge pull request #1587 from node-red-hitachi/master-pj-cred
Fix the problem that does not encrypt credential file
2018-01-29 11:13:19 +00:00
Nick O'Leary
519edce0ed Replace when.otherwise() with Promise.catch()
Fixes #1584
2018-01-29 09:51:38 +00:00
Kazuki-Nakanishi
0bc7702d95 Fix the problem that the project other than the first project does not encrypt a credential file 2018-01-29 15:51:16 +09:00
Hiroyasu Nishiyama
18be0d6d26 merge upstream/master 2018-01-29 14:44:17 +09:00
Dave Conway-Jones
1d4a435f20 Use a properly random is for parts.id
to close #1583
2018-01-28 21:15:59 +00:00
Hiroyasu Nishiyama
34e46fc6d3 fix behavior of msg per line mode of FILE IN node with empty line 2018-01-28 21:27:15 +09:00
Nick O'Leary
50956c51f7 Wrap notification messages in <p> when needed 2018-01-28 10:57:05 +00:00
Nick O'Leary
dd7bb28b6a Fix debug comms batching with multiple connections 2018-01-28 10:44:02 +00:00
Hiroyasu Nishiyama
8516f41ba8 do not reuse message object for multiple outputs 2018-01-28 14:37:34 +09:00
Nick O'Leary
15c3cc60f6 Update changelog 2018-01-26 15:22:31 +00:00
Nick O'Leary
716bca211b Update link to core team
Fixes #1540
2018-01-26 15:08:42 +00:00
Dave Conway-Jones
8179813fe1 let HTML node return empty array for no matching input.
to Close #1582
2018-01-26 14:26:54 +00:00
Nick O'Leary
d355de509b Merge pull request #1580 from node-red-hitachi/0.18-parts-ext-switch-fix
fix bugs in SWITCH updates
2018-01-26 08:18:10 +00:00
Nick O'Leary
b04a2d4c08 Merge pull request #1581 from kazuhitoyokoi/0.18-jsonnode
Add icons into property UI of JSON node
2018-01-26 08:17:48 +00:00
Kazuhito Yokoi
6d3232a4f0 Add icons into property UI of json node 2018-01-26 07:31:48 +00:00
Hiroyasu Nishiyama
2753075180 fix bugs in SWITCH updates 2018-01-26 12:39:07 +09:00
Nick O'Leary
d0166b25e4 Update Changelog 2018-01-25 22:03:54 +00:00
Nick O'Leary
73ee657d74 Add TLS options to WebSocket client 2018-01-25 20:26:35 +00:00
Nick O'Leary
45913e5ee8 Don't end mqtt client on first error
Fixes #1566
2018-01-25 16:58:42 +00:00
Nick O'Leary
e6369820a9 SIGINT handler should wait for stop to complete before exit 2018-01-25 14:04:38 +00:00
Nick O'Leary
22a5b339f7 Stop list items from overflowing to new lines in node ui
Fixes #1408
2018-01-25 14:02:41 +00:00
Nick O'Leary
2cea3b6435 Merge pull request #1557 from node-red/inject-node-spinner-and-hours-fixes
remove inject node at specific time spinner
2018-01-25 13:51:27 +00:00
Nick O'Leary
5d2d06fb3e Type editors should inherit the width of their parent tray 2018-01-25 13:50:35 +00:00
Nick O'Leary
0dd7bc7fb9 Better default README.md content and edit button 2018-01-25 13:30:27 +00:00
Dave Conway-Jones
0b0005337c Decrement connected client count rather than show disconnected
to close #1577
2018-01-25 13:27:47 +00:00
Hiroyasu Nishiyama
d26fb02bb9 Japanese message catalog update of core nodes for 0.18 (#1579)
* Japanese message catalog update for 0.18

* update Japanese message catalog

* change tabs to spaces
2018-01-25 11:34:51 +00:00
Nick O'Leary
af683835d9 Add optional header to markdown editor 2018-01-25 11:24:30 +00:00
Nick O'Leary
c43647ca86 Handle null profile flow file name 2018-01-25 11:14:16 +00:00
Nick O'Leary
6d02e70025 Ensure existing files are migrated to first project 2018-01-25 10:13:07 +00:00
Kazuhito Yokoi
5498c6f87d Update Japanese translations in editor.json (#1573)
* Update Japanese translations in editor.json

* Update Japanese translations in editor.json
2018-01-25 08:12:28 +00:00
Kazuhito Yokoi
11f59bc3ac Move Chinese language files to correct path (#1574) 2018-01-25 08:12:15 +00:00
Kazuki Nakanishi
94cb7de79f Fix the problem when using projects feature without git setting (#1575) 2018-01-25 08:11:46 +00:00
Nick O'Leary
838f45775b Merge pull request #1576 from node-red-hitachi/0.18-pj-open
Enable the project open button when creating a first project
2018-01-25 08:10:03 +00:00
Kazuki-Nakanishi
1c1422e4b5 Enable a project open button when creating a first project 2018-01-25 12:46:37 +09:00
Nick O'Leary
cd8ca6fc62 Merge pull request #1552 from node-red/ace-editor-annotations
Changes to ACE editor annotations
2018-01-24 23:16:53 +00:00
Nick O'Leary
b7a0a9d7c2 Merge branch 'master' into 0.18 2018-01-24 23:08:14 +00:00
Nick O'Leary
7822ab113a Merge pull request #1571 from node-red/projects
Projects 🎉
2018-01-24 23:07:04 +00:00
Nick O'Leary
e250a91f09 Merge branch '0.18' into projects 2018-01-24 23:06:27 +00:00
Nick O'Leary
92a65dcda5 Update installer tests for spawn 2018-01-24 22:56:54 +00:00
Nick O'Leary
4b129d94e4 Move node install to spawn to allow for big stdout
Fixes #1488
2018-01-24 22:41:26 +00:00
Nick O'Leary
e7960d1d44 Rewording some of the message sequence nodes (#1564)
* Rewording some of the message sequence nodes

* Fix batch test for overlap renaming

* Finish msg-sequence node help rewording

* Rename maxKeptMsgsCount to nodeMessageBufferMaxLength

* Rename nodeMessageBufferMaxLength in tests

* Remove Join-merge mode for later rework
2018-01-24 22:01:07 +00:00
Nick O'Leary
95589307cd Better reporting of project-not-found 2018-01-24 21:54:18 +00:00
Nick O'Leary
20a0e4f3e0 Update settings test for global git user 2018-01-24 21:24:54 +00:00
Nick O'Leary
6a9213da64 Add project-exists checks on first-run dialog 2018-01-24 21:21:01 +00:00
Nick O'Leary
7a89e3cf33 Check the global git config to ensure its setup 2018-01-24 21:05:48 +00:00
Nick O'Leary
64607df929 Ensure git username/email are set on project creation 2018-01-24 15:51:11 +00:00
Nick O'Leary
a62a1012fa Handle scoped modules via palette editor 2018-01-24 15:07:43 +00:00
Nick O'Leary
14efd0b2f9 Merge pull request #1529 from btsimonh/websocketsnonadmin
Fix WebSockets not working when httpAdminRoot false
2018-01-24 11:00:48 +00:00
Nick O'Leary
7ad2192df8 Merge pull request #1475 from thiagobustamante/patch-1
Fix #1456
2018-01-23 23:12:16 +00:00
Nick O'Leary
3cb5cbd8d5 Allow adminAuth.user to be a Function
Fixes #1461
2018-01-23 23:08:11 +00:00
Nick O'Leary
cc9011cd68 oneditdelete should be available to all node types
Closes #1346
2018-01-23 21:29:39 +00:00
Nick O'Leary
dc3d89008d Merge pull request #1561 from node-red/add-property-select
Add property select to various core nodes
2018-01-23 17:06:31 +00:00
Nick O'Leary
1893642187 Sort typeSearch results based on position of match 2018-01-23 15:40:41 +00:00
Nick O'Leary
a9ece5772d Remove extra editor logging 2018-01-23 11:29:09 +00:00
Nick O'Leary
cf34716a57 Tidy up project first-run experience 2018-01-23 11:26:05 +00:00
Nick O'Leary
1337831061 Better interaction with view-ssh-key list 2018-01-23 10:25:19 +00:00
Nick O'Leary
757e72100d Put Projects behind feature flag within editor 2018-01-22 23:33:05 +00:00
Hiroyasu Nishiyama
a75b819858 reduce *MaxKeptMsgsCount property to one maxKeptMsgsCount (#1563) 2018-01-22 23:26:17 +00:00
Kazuki Nakanishi
da4a0f09ed Add a button to restore user defined icon (#1569) 2018-01-22 23:25:43 +00:00
Hiroyasu Nishiyama
87d847a074 delete useless logging code from SWITCH node (#1570) 2018-01-22 23:25:02 +00:00
Nick O'Leary
84711beec0 Merge branch '0.18' into projects 2018-01-22 23:17:28 +00:00
Nick O'Leary
f3cf58c8ff Remove mqtt debug 2018-01-22 23:15:20 +00:00
Nick O'Leary
cf40497e6e Flip logic for opt-in to projects 2018-01-22 23:14:38 +00:00
Nick O'Leary
dfebc4b78d Migrate deploy confirmations to notifications 2018-01-22 23:04:05 +00:00
Nick O'Leary
15f41a2e7c Relax localfilesystem fsync tests 2018-01-22 14:16:31 +00:00
Nick O'Leary
ad6e55ca17 Allow a user to install missing modules from project settings 2018-01-22 13:46:11 +00:00
Hiroyasu Nishiyama
6b466d217a update UI for SORT node (#1567)
* update UI of SORT node

* fix maxKeptMsgsCount of SORT node
2018-01-22 00:23:22 +00:00
Dave Conway-Jones
00dcb304c7 add default values as placeholders to trigger so no-one is suprised. 2018-01-21 11:49:06 +00:00
Hiroyasu Nishiyama
c6fb3d6f41 make selector of "joined using" filed shown correctly (#1568)
make selector of "joined using" field shown correctly
2018-01-21 11:46:57 +00:00
Dave Conway-Jones
ac3143811f don't fail icon check if it's not there (allows delete of missing config node) 2018-01-19 22:48:03 +00:00
Nick O'Leary
7e27dd7678 Don't rely on ssh-keygen output to prevent known errors 2018-01-19 22:31:41 +00:00
Nick O'Leary
c2508296a5 Add debug to sshkeygen 2018-01-19 22:10:29 +00:00
Nick O'Leary
a9b50ce6fc Collapse create/open/delete project dialogs into one 2018-01-19 21:51:29 +00:00
Nick O'Leary
eac98a6d4d Prevent ssh-keygen prompting for passphrase when blank 2018-01-19 13:12:22 +00:00
Nick O'Leary
7e2b2a9a02 Timeout sshkey-gen calls 2018-01-19 12:57:37 +00:00
Nick O'Leary
353de471eb Add debug to sshkeygen for travis 2018-01-19 12:50:12 +00:00
Nick O'Leary
85fc20b52d Fix unhandled promise warnings in sshkeys/node8 2018-01-19 11:42:19 +00:00
Nick O'Leary
cc25a781f8 Increase timeouts on sshkeygen tests for travis 2018-01-19 11:21:12 +00:00
Nick O'Leary
fc3012ba72 Add notification button to title bar 2018-01-19 10:36:57 +00:00
Nick O'Leary
d93a92c1c8 Rearrange ssh logic to bring it together 2018-01-18 23:13:55 +00:00
Nick O'Leary
f7f795f58a Fixup SSH key auth for project repos 2018-01-18 22:17:48 +00:00
Nick O'Leary
2700f8cdd2 Try to surpress the system context menu on Ctrl-Click in canvas 2018-01-17 23:14:18 +00:00
Hiroyasu Nishiyama
6310de0d20 Initial support of sequence rules for SWITCH node (#1545)
* new UI for parts support of SWITCH node

* update UI of SWITCH node for parts support

* add server side code of new SWITCH node

* update info document of SWITCH node

* add tests for new SWITCH node features

* add test for too many pending messages & related fixes

* fix handling when msg is undefined

* tabs -> spaces

* fixed meaning of "repair sequence" in SWITCH node docs

* add a note on restricting internally kept messages

* change label and position in menu of "pos. between" rule

* fixed typos (again, sorry)
2018-01-17 10:08:58 +00:00
Hiroyasu Nishiyama
218794be77 Initial support of merge & reduce mode for JOIN node (#1546)
* initial support of merge mode of JOIN node

* initial support of reduce mode of JOIN node

* update info document of JOIN node

* add tests for merge & reduce mode of JOIN node

* tidy tabs & spaces

* add test for too many pending messages & related fixes

* add an test for reduce mode of JOIN node

* change order of modes of SWITCH node

* add initial topics entry of merge mode

* fixed descriptions on "reduce right" checkbox

* fixed update of typedInput field of reduce mode

* fixed a typo in info document of JOIN node

* allow empty string in JSONata input field of reduce mode

* fixed a typo

* fixed error in reduce mode description
2018-01-17 10:08:23 +00:00
Hiroyasu Nishiyama
af71ae649b Initial support of new BATCH node (#1548)
* initial support of BATCH node

* add concat mode & fix for docs and js code

* add tests for BATCH node

* minor correction of typo

* allow interval in float

* fixed message catalog

* add test for too many pending messages & related fixes

* update info document on batchMaxKeptMsgsCount

* fixed close callback

* fixed info document

* add initial topics entry of concat mode
2018-01-17 10:05:01 +00:00
Dave Conway-Jones
9bc72c1a06 let trigger node be reset by boolean message (#1554)
* let trigger node be reset by boolean message

with test

* fix trigger node boolean reset check to work with false

and add test
2018-01-17 09:51:53 +00:00
Kazuki Nakanishi
8d7c157751 Add UI test cases for messages on cookbook (#1562) 2018-01-17 09:50:46 +00:00
Dave Conway-Jones
558a66fbe5 restrict inject interval to less that 2^31 millisecs
(596 hrs, 24 days) to stop overflow causing fast loop. (defaults to 0)
to close #1485
2018-01-17 09:35:47 +00:00
Nick O'Leary
f95b414d22 First pass of projects test coverage 2018-01-16 23:04:39 +00:00
Dave Conway-Jones
e793a1e1aa add property choice to xml, sentiment nodes
add tests
2018-01-16 21:43:37 +00:00
Nick O'Leary
b76010cb5a Add sshkeygen test 2018-01-16 16:38:53 +00:00
Nick O'Leary
52475df783 Fix various tests due to projects rework 2018-01-16 16:18:18 +00:00
Nick O'Leary
1f3f32d377 Improve checks for missing _spec files 2018-01-16 13:15:47 +00:00
Nick O'Leary
3f5ba10354 Fix up merge 2018-01-16 11:25:13 +00:00
Nick O'Leary
25f4a018d9 Merge branch '0.18' into projects 2018-01-16 11:21:54 +00:00
Dave Conway-Jones
a11a279c00 add msg. select to range and yaml nodes,
re-order son node (name to bottom)
add common.label.property to messages list
2018-01-16 10:59:44 +00:00
Nick O'Leary
fd4fdb31b5 Better error reporting when module provides duplicate type 2018-01-15 23:20:20 +00:00
Dave Conway-Jones
1921796d6d slight inject css adjust to line up text 2018-01-15 09:02:52 +00:00
Nick O'Leary
543a2b9dc7 Update json node docs to add caveat on ensuring JSON 2018-01-14 23:37:39 +00:00
Nick O'Leary
dd23e03342 Add option to JSON node to ensure particular encoding 2018-01-14 23:19:01 +00:00
Dave Conway-Jones
5307c74f85 remove inject node at specific time spinner
to close #1406
perform better validation / truncation of input for crontab,
adult spacing on page to be less cramped/more aligned
2018-01-14 22:16:51 +00:00
Dave Conway-Jones
d701c406e2 Update ACE editor (#1555) 2018-01-14 21:05:22 +00:00
Dave Conway-Jones
3ba56a0a65 add missing CSV node messages (#1551) 2018-01-14 21:02:46 +00:00
Dave Conway-Jones
4adafb6d1e Changes to ACE editor annotations
relax errors for missing semi-colons, [] syntax warnings, max errors.
And also ignore missing doctype error for html templates.
2018-01-14 13:24:12 +00:00
Nick O'Leary
4453a51211 Tidy up properly between file node tests 2018-01-14 01:06:55 +00:00
Nick O'Leary
14429d2943 Remove node 7 from travis 2018-01-14 00:54:45 +00:00
Nick O'Leary
1a62a7831b Handle undefined/null in log functions
Fixes #1418
2018-01-14 00:50:58 +00:00
Nick O'Leary
242e35c212 Fix file tests now the node properly creates directories 2018-01-14 00:44:33 +00:00
Nick O'Leary
ea763fdfd5 File out - create dirs synchronously to ensure they exist
Fixes #1489
2018-01-14 00:33:25 +00:00
Nick O'Leary
e762b7ff48 TypedInput: handle user defined value/labels options
Fixes #1549
2018-01-14 00:24:36 +00:00
Nick O'Leary
298068b2b9 Clear mouse state when typeSearch cancelled
Fixes #1517
2018-01-13 23:46:16 +00:00
Nick O'Leary
cb4120ec4b Watch node - filter subdir events in tests because fs.notify is inconsistent 2018-01-13 23:24:41 +00:00
Nick O'Leary
5cfbb87bee Fix global leak in watch tests (again x2) 2018-01-13 23:14:01 +00:00
Nick O'Leary
9e472ed83c Fix global leak in watch tests (again) 2018-01-13 23:00:05 +00:00
Nick O'Leary
ebca753fc4 Fix global leak in watch tests 2018-01-13 22:59:05 +00:00
Nick O'Leary
548f45cd56 Publish null/undefined to mqtt as blank not toString
Fixes #1521
2018-01-13 22:53:58 +00:00
Nick O'Leary
8ffabf1813 Make Watch node test more reliable
- tidied up some unnecessary code
 - removed the 'size' check as that is highly prone to timing issues
2018-01-13 22:48:35 +00:00
Nick O'Leary
1f40d4f941 Update package dependencies 2018-01-13 22:00:43 +00:00
Nick O'Leary
41582045d0 Tidy-up inject node once-timer on close 2018-01-13 21:17:14 +00:00
Nick O'Leary
fd9e3fc03a Update jsonata to 1.4.1 2018-01-13 20:42:23 +00:00
Nick O'Leary
8c42b2bdb4 Add passphrase to TLS node 2018-01-13 20:27:54 +00:00
Dave Conway-Jones
7b1787fdbb Debug to status option (#1499)
* Let debug optionally target the status line (32 chars only)

* Add batching of messages to debug ws comms

* let Debug handle simple case of NaN

would also close #1530

* Fixup debug tests for batch comms (no new tests yet)

* mixup comms/api test to match new batch mode (no new tests)

* Add test for NaN being sent OK.

* redo original fix to padding / labels for new debug options

* fix debug test (re-add fix from #1444)

* Fix up merge issues in debug tests
2018-01-13 16:14:03 +00:00
Colin Law
71fee0025d Add description of Timeout field in exec node info tab (#1550) 2018-01-13 15:33:15 +00:00
Nick O'Leary
1204cf1ba0 Better permission handling in editor 2018-01-12 21:00:11 +00:00
Nick O'Leary
7bd8d8c3ae Give in to npm's insistent reformatting of package.json 2018-01-11 23:04:39 +00:00
Rocco Musolino
2c4d5fa38d add express-session memorystore without leaks (#1435)
* add express-session memorystore without leaks

* Bump memorystore to v1.6.0
2018-01-11 22:51:05 +00:00
Nick O'Leary
bedb2d943e Merge branch 'pr_1231' into 0.18 2018-01-11 22:46:18 +00:00
Dave Conway-Jones
a3640bd9bf tag UDP ports in use properly so they get closed correctly (#1508)
* tag ports in use properly so they get closed correctly

to close #1470

* redo test for udp port in use

* check port in use correctly on close
2018-01-11 22:03:59 +00:00
Dave Conway-Jones
7c0b9ffe06 Add skip first n lines capability to csv node (#1535)
* Initial implementation of skip first lines for css node

* add css skip lines tests
2018-01-11 22:02:58 +00:00
Nick O'Leary
161c7d30ca Add support for rejectUnauthorized msg property 2018-01-11 22:00:10 +00:00
Klaus Landsdorf
4ff6e792cd Inject node - let once delay be editable (#1541)
* inject once with delay

* test for inject delay at once works

* give access to the once delay of the inject node

* change event not needed in HTML

* code review with Dave

* rename test

* tests for default and optional delay

* test once with delay and repeat
2018-01-11 21:50:53 +00:00
delbozkester
af5df890a5 Add MQTT via WebSocket communication option (#1544)
* Add MQTT via WebSocket communication option

Add option in MQTT broker configuration node to enable MQTT via WebSoket comunication

* MQTT over WS error correction

Minimal correction of values and erase debug console.log unnecessary

* original package.json

Erase some changes on grunt build at package.json. Erase package-lock.json and back to the original package.json

* .gitignore

* .gitignore again

* No tabs
2018-01-11 21:22:02 +00:00
Nick O'Leary
9ba011003a Merge branch 'master' into 0.18 2018-01-11 21:20:51 +00:00
Nick O'Leary
bb168d35a8 Add warning if no sshkeys configured when cloning 2018-01-11 12:56:49 +00:00
Nick O'Leary
3306d30094 Get proper path to local keyfile when selected 2018-01-11 11:19:04 +00:00
Nick O'Leary
6516e0dfd2 Allow a user to pick existing sshkeys from ~/.ssh 2018-01-10 17:37:41 +00:00
Nick O'Leary
00a396014b Fix editor-button toggle css 2018-01-10 10:02:35 +00:00
Nick O'Leary
13356047dc Better handling of empty projects and lifecycle 2018-01-09 15:06:05 +00:00
Nick O'Leary
8a6488b067 Move editor project files and add search to open dialog 2018-01-08 23:14:37 +00:00
Nick O'Leary
1c2ea56f42 Allow a project to be specified on the command-line
Reuses the existing flowFile - if its value is found
to be the name of an existing project, that project
is set as the active one.

If it is not the name of an existing project, it is
ignored.
2018-01-08 16:10:54 +00:00
Nick O'Leary
1d7ae300e2 Handle cloning a bare repository 2018-01-08 14:46:56 +00:00
Nick O'Leary
6013e186ed Add placeholder when a repo has no local branches 2018-01-08 14:46:56 +00:00
Hideki Nakamura
207d3d3340 Clear debug message when switching projects (#1523)
* Clear debug sidebar when switching project

* Delete a unnecessary comment

* Clear any filters the users has enabled

* Clear filter settings only when the user opens a project
2018-01-05 16:13:02 +00:00
Hideki Nakamura
5a6cde1446 Refactoring ssh-keygen function (#1533) 2018-01-05 16:12:01 +00:00
Kazuki Nakanishi
63f7d826bc Enable it to store icon files in {settings.userDir}/lib/icons directory for dynamic nodes's icon feature (#1536) 2018-01-05 14:23:47 +00:00
Kazuki Nakanishi
ff8773f6bd Fix the problem that occurs by grunt coverage (#1537) 2018-01-05 14:22:49 +00:00
Colin Law
a868cb97d9 Move all node.send to end of timer functions in trigger node (issue #1527) (#1539) 2018-01-02 08:28:08 +00:00
Nick O'Leary
915d73e6f2 Ensure node.outputs remains a number type
Closes #1532
2017-12-22 21:14:47 +00:00
Hugobox
5f4f6e37b5 HTTP REQUEST: Adding PROPPATCH and PROPFIND http methods (#1531)
* HTTP REQUEST: Adding PROPPATCH and PROPFIND http methods

* Removed method check
2017-12-22 10:16:39 +00:00
Nick O'Leary
9c350311e8 Fix reauthentication of remote repositories 2017-12-21 17:40:24 +00:00
Hideki Nakamura
3c6ba72a2a Change z-index property of "notification" to a larger than z-index property of "dialog" (#1528) 2017-12-21 08:20:41 +00:00
Nick O'Leary
816442f5f0 Update sshey UI to use common list style 2017-12-20 23:45:17 +00:00
Nick O'Leary
3b51d18ce7 Change default user filename prefix for sshkeys 2017-12-20 16:08:57 +00:00
Simon Hailes
6696b6661a When creating 'redserver' for a node, use runtime.server rather than runtime.adminApi.server, and fill runtime.server at startup with the valid http server regardless of adminApi being available.
This resolves websockets not working when the adminApi (httpAdminRoot) is disabled in settings.
2017-12-20 16:04:32 +00:00
Nick O'Leary
8c87478636 Merge sshkeys 2017-12-20 15:12:10 +00:00
Nick O'Leary
d870b072d7 Tidy up branch/remote list in projectSettings 2017-12-20 14:37:34 +00:00
Hideki Nakamura
2ea2af7d2a Use a fixed string instead of os.hostname() 2017-12-20 19:44:57 +09:00
Dave Conway-Jones
f737ea96f3 Don't send message if it doesn't exist. and give it time not to exist.
to close #1527
2017-12-19 17:54:26 +00:00
Nick O'Leary
05f90394db Flag misconfigured project credentialSecret 2017-12-19 14:00:58 +00:00
Hideki Nakamura
c24b0c6bb4 Change "generateSSHKey" function signature 2017-12-19 22:57:40 +09:00
Hideki Nakamura
e07a4dc7ba Change the implementation of visible check 2017-12-19 22:30:42 +09:00
Kazuki Nakanishi
fc6748a46b [UI test] Split test script into scenario and browser operation (#1516) 2017-12-19 11:11:51 +00:00
Kazuki Nakanishi
7697c46652 Fixed name conflict of icon property for dashboard node (#1524) 2017-12-19 11:11:10 +00:00
Hideki Nakamura
ed52e5afd1 Avoid reformatting package.json 2017-12-19 10:32:05 +09:00
Nick O'Leary
33a5b84181 Add first-run dialog to migrate files to project 2017-12-19 00:56:02 +00:00
Hideki Nakamura
c09a407f4c Delete unnecessary comments & add trace mock function 2017-12-18 21:37:09 +09:00
Hideki Nakamura
d35784ec61 Delete unnecessary comment & Add a logic of the error case 2017-12-18 20:46:07 +09:00
Hideki Nakamura
53e012f296 Add delete SSH Key dialog 2017-12-18 00:53:03 +09:00
Hideki Nakamura
2a9d0a5e7d Merge branch 'projects' into sshkey-management 2017-12-17 23:54:44 +09:00
Nick O'Leary
474f4572f2 Fix conditional initialisation of projects 2017-12-16 23:43:08 +00:00
Hideki Nakamura
bf57cb209f Delete unnecessary logs 2017-12-16 00:46:05 +09:00
Hideki Nakamura
9bc41c1709 Merge branch "projects" 2017-12-16 00:33:08 +09:00
Hideki Nakamura
fe10b8650f Add Git access feature via SSH and Enhance SSH Key management 2017-12-16 00:07:47 +09:00
Hideki Nakamura
3a311c9584 Detect a SSH key generation error 2017-12-15 23:48:52 +09:00
Hideki Nakamura
d1106f53e0 Pass email data into the SSH Key generation API 2017-12-15 21:41:14 +09:00
Nick O'Leary
a3a1bba5ef Add projects editorTheme flag to disable the feature 2017-12-13 09:44:48 +00:00
Nick O'Leary
028d66befc Add suitable message when not displaying binary files 2017-12-11 17:05:27 +00:00
Nick O'Leary
bb59cd5742 Allow unstaged files to be reverted 2017-12-11 17:05:12 +00:00
Nick O'Leary
604e3068b2 Add full-screen shade that covers everything but notfications 2017-12-10 22:35:57 +00:00
Nick O'Leary
27f1d3b704 Add delete local branch option 2017-12-08 16:31:42 +00:00
Nick O'Leary
d007623347 Return more detailed information on /project/branches api 2017-12-07 22:24:57 +00:00
Hideki Nakamura
6a5cf7a1fa Merge branch 'projects' into sshkey-management 2017-12-07 23:29:58 +09:00
Hideki Nakamura
3adfe249b0 Support to delete project feature (#1509)
* First commit to support to delete projects

* Add delete project menu & Implement delete project API

* Correspond to the PR feedback
2017-12-07 14:28:26 +00:00
Hideki Nakamura
923893e160 Add SSH key management API 2017-12-07 23:11:24 +09:00
Dave Conway-Jones
256e5360d4 ensure core node labels are italic when named (#1498) 2017-12-06 22:47:13 +00:00
Nick O'Leary
304c597a2f Store repo credentials per-user 2017-12-06 22:39:30 +00:00
Nick O'Leary
f86d3a69d2 Fix merge-abort button 2017-12-06 22:39:20 +00:00
Hiroyasu Nishiyama
d7c8adfd82 Fix handling of too many pending messages in SORT node (#1514)
* initial support of SORT node

minor fix of sort node

fixed error message of sort node

fixed error handling of SORT node

add test case for SORT node

make limit of messages count computed once in SORT node

* update type in message & info description

* fix handling of pending messages in SORT node
2017-12-06 19:44:46 +00:00
Hideki Nakamura
55cd069043 Fix the error that "otherwise is not a function" (#1513) 2017-12-06 13:20:38 +00:00
Hideki Nakamura
3ca0e9c420 Fix the property "users" access error in runtime.start test caces (#1511) 2017-12-06 13:20:22 +00:00
Hideki Nakamura
1dd4323613 Fix the errors in credentials test cases (#1512) 2017-12-06 13:19:07 +00:00
Hideki Nakamura
d78916f85f Fix the error occuring during permission check (#1510) 2017-12-06 13:18:36 +00:00
Nick O'Leary
1840d15397 Restructure how editor/git settings are saved in userSettings 2017-12-05 23:50:32 +00:00
Dave Conway-Jones
b98d1216b1 ignore _msgid when merging full objects
to hand code and close #1423
2017-12-05 21:45:43 +00:00
Dave Conway-Jones
27db727321 Let CSV correct parts if we remove header row.
and add test
2017-12-05 17:34:49 +00:00
Nick O'Leary
3f6b1f6ccb Fix loading of userSettings
Closes #1505
2017-12-05 16:23:55 +00:00
Hideki Nakamura
6d633b372a Add git config UI (#1506)
* Add Git config tab

* Get usersetting data via admin HTTP API

* Delete git committer edit form in Project Settings tab

* Corresponding to the PR feedback
2017-12-05 16:14:20 +00:00
Nick O'Leary
91352e855a Handle overwrite warning on local branch change 2017-12-05 16:12:07 +00:00
Qi Xiu
8bb9b594cf Add Chinese translation of jsonata.json (#1504) 2017-12-05 15:58:11 +00:00
Hiroyasu Nishiyama
6d2fd2e641 add parts support for CSV node (#1496)
* add parts support for CSV node

* make CSV node to preserve incoming parts property
2017-12-05 15:39:51 +00:00
Dave Conway-Jones
422fbcb0b7 add error msg to sort node 2017-12-05 15:01:58 +00:00
Hiroyasu Nishiyama
afce106186 initial support of SORT node (#1500)
* initial support of SORT node

minor fix of sort node

fixed error message of sort node

fixed error handling of SORT node

add test case for SORT node

make limit of messages count computed once in SORT node

* update type in message & info description
2017-12-05 14:54:03 +00:00
Ross Cruickshank
f21c8154ed enable template config via msg.template for stored or generated templates (#1503)
* updates to 80-template to allow setting template with msg.template

* updated 80-template_spec test for msg.template support

* fixed 80-template.js test
2017-12-05 12:24:06 +00:00
Dave Conway-Jones
3988a648d6 Merge branch 'master' into 0.18 2017-12-05 12:22:20 +00:00
Nick O'Leary
1b632894d3 Save editor settings in /settings/user 2017-12-05 10:20:13 +00:00
Nick O'Leary
5e128f89f6 Ensure strategy login button uses relative URL
Fixes #1481
2017-12-04 21:13:07 +00:00
Nick O'Leary
fff0b15ae5 Add /settings/user end point 2017-12-04 17:15:17 +00:00
Nick O'Leary
a7e14f1093 Handle a local branch that does not yet track a remote 2017-12-04 13:26:47 +00:00
Nick O'Leary
94eeaeb8d3 Allow committer details to be set per-user 2017-12-04 11:42:44 +00:00
Nick O'Leary
64191e8303 Merge master to 0.18 2017-12-03 22:32:28 +00:00
Nick O'Leary
21cfb71617 Add modal notification type with buttons 2017-12-03 22:26:17 +00:00
Hiroyasu Nishiyama
806457063f add parts support for HTML node (#1495)
* add parts support for HTML node

* add parts.{type,ch} to output of HTML node
2017-12-01 13:09:05 +00:00
Kazuki Nakanishi
b9213b73bd first step of ui test (#1497) 2017-12-01 10:50:59 +00:00
Hiroyasu Nishiyama
d7f0102aa2 add test for WATCH node (#1493) 2017-11-30 13:48:52 +00:00
Nathanaël Lécaudé
f09e61a59a Added parsed YAML support for template node (#1443) 2017-11-30 13:38:50 +00:00
Mike Blackstock
d426aaa88a add —unsafe-perm option to npm install to match documentation (#1486) 2017-11-30 13:38:22 +00:00
tilleul
19e45389e1 Updated regex so custom width using calc() work (#1487)
So far, for typedInput "<input type=text>" fields, only custom styles like "width:100%" or "width:75px" worked. Proposed change allows to use calc() as well like in "width:calc(100% - 120px)"
2017-11-30 13:38:03 +00:00
Kazuki Nakanishi
6d2389945b allow a node's icon to be set dynamically (#1490)
* create a proto type

* Fixed some problems after reviewing
2017-11-30 13:13:35 +00:00
Nick O'Leary
14c48253f6 Confirm actions that would overwrite dirty workspace 2017-11-24 23:12:35 +00:00
Nick O'Leary
e5ff25b92d Fix project pull with authentication 2017-11-23 20:52:15 +00:00
Nick O'Leary
5c88888e02 Better auth handling in projects 2017-11-23 00:27:13 +00:00
Nick O'Leary
10057de9b3 A big projects update
Includes:

 - change local/remote branches
 - basic support for username/password handling
2017-11-21 23:31:41 +00:00
Dave Conway-Jones
cc88ebd2b9 Let trigger node support per topic mode (#1398)
* Let trigger node support per topic mode

* ensure trigger node clones repeating message

* Add some tests for trigger by topic

* test trigger repeat for pass by ref error

* trigger test - add missing try/catch to all test with callback

* boost trigger node test coverage
2017-11-17 17:35:18 +00:00
Jim Turner
6baedf909d Fix #1478 - Project files are not being flushed to disk after being written (#1479)
* Call fsync() before closing file

* Fix race condition in tests due to incorrect stub.

The startFlows() function wasn't really being stubbed, so it was still being called. But there was no corresponding call to stopFlows().

In later tests, the check in Flows.init() was throwing the "Cannot init without a stop" error.

* Test coverage for fsync() calls

For issue #1478

* Revert "Fix race condition in tests due to incorrect stub."

This reverts commit 4f71d7851b.

* Fix race condition in tests due to incorrect stub.

The startFlows() function wasn't really being stubbed, so it was still being called. But there was no corresponding call to stopFlows().

In later tests, the check in Flows.init() was throwing the "Cannot init without a stop" error.

* Fix intermittent test failure in Exec node.

Occasionally, the error text on stderr will come in more than one piece. The test only worked correctly if a single message was received.
2017-11-17 17:29:33 +00:00
Dave Conway-Jones
f39d9d6f1b clone messages before delayed send (#1474)
and accept floats for delay interval.
2017-11-17 17:27:29 +00:00
Kazuhito Yokoi
ab61a95f83 Add test cases for change node (#1476) 2017-11-17 17:26:36 +00:00
Thiago Bustamante
10ceed30c6 Fix #1456
When importing new nodes, it is necessary to check the 'exclusive' flag
2017-11-03 11:34:41 -02:00
Dave Conway-Jones
2b9aa94f3a Add rc property to exec node outputs 1 and 2 (#1401)
* Add rc property to exec node outputs 1 and 2

to close #1399

* improve test coverage and add tests for new msg.rc

* make spawn test slightly more robust to different environments

* added debug for spawn test

* let spawn error test be even more relaxed

* don't necessarily clone msg.payload in exec node stderr

as per suggestion
2017-11-02 16:55:44 +00:00
Kazuki Nakanishi
848fb975ed Fix a problem of file append test on Windows (#1431)
* Fix a problem of file append test on Windows

* Skip the test case of file node that fails on Windows

* Remove close() call

* Fixed a recreated file test case on Windows
2017-11-02 16:51:40 +00:00
Hiroki Uchikawa
d7f59dac84 Make it possible to save formatting choices separately by the type of object (#1458) 2017-11-02 16:50:35 +00:00
Dave Conway-Jones
dd47e615ee Fix css template with spaces , and add test (#1462)
to close #1460
2017-11-02 16:50:13 +00:00
Hiroyasu Nishiyama
8f2f7ea1a5 Add test script for link node (#1463)
* fixed unmatched HTML tags

* add test for link node & red.js fix for it
2017-11-02 16:47:12 +00:00
Hiroyasu Nishiyama
80a8efd8ce Add test script for "tcp in" node (#1465)
* fixed unmatched HTML tags

* add test for "tcp in" node
2017-11-02 16:47:01 +00:00
Hiroyasu Nishiyama
d9dce77ef4 add test script for "udp in" node (#1466)
* add test script for "udp in" node

* use old socket.send API for Node4.X compatibility
2017-11-02 16:46:51 +00:00
Hiroyasu Nishiyama
ce7053a1fe add test script for "udp out" node (#1467) 2017-11-02 16:46:38 +00:00
Hiroyasu Nishiyama
0db1530171 add test script for "tcp request" node (#1468)
* add test script for "http request" node

* change let -> var
2017-11-02 16:46:26 +00:00
Nick O'Leary
3745504107 Keep version sidebar in sync with project 2017-10-25 15:36:41 +01:00
Nick O'Leary
57533fd831 Add commit-diff view 2017-10-25 15:26:24 +01:00
Kazuhito Yokoi
f57a0d4d6b Remove unused variables in test cases of change node (#1455)
* Remove unused variables in test cases of change node

* Empty commit to run test cases again

* Empty commit to run test cases again
2017-10-25 12:23:28 +02:00
Hiroki Uchikawa
22772ca33e Fix debug message format for Buffer (#1444)
and add a test case
2017-10-23 12:13:28 +02:00
jmikerq
dba6ff1d51 added chinese messages.json locale file (#1452)
* modified the wording in the chinese editor.json 

change the wording closer to their meanings in chinese

* added chinese messages.json
2017-10-23 11:55:26 +02:00
Qi Xiu
40146dedaf Add Chinese version of infotips.json (#1449) 2017-10-23 11:55:08 +02:00
jmikerq
387b822f53 clean up naming for chinese software naming convention (#1453) 2017-10-23 11:54:49 +02:00
Nick O'Leary
b9a3563e5b Handle 'No newline' message in text diffs 2017-10-20 21:29:43 +02:00
Nick O'Leary
3d6468326a Allow a project's flow file to be changed 2017-10-19 21:38:53 +01:00
Kazuhito Yokoi
298e37ec53 Fix problem in node pull-down menu (#1448) 2017-10-19 13:52:25 +01:00
Kazuhito Yokoi
5b137c457b Fix invalid from property error in change node (#1442)
* Fix invalid from property error in change node

* Empty commit to run test cases again
2017-10-17 22:17:27 +01:00
Nick O'Leary
5218a3fbac Add custom project.toJSON to simplify state mangement 2017-10-17 10:14:50 +01:00
Nick O'Leary
4569cb432d Add Project object in runtime 2017-10-16 23:23:50 +01:00
Kazuhito Yokoi
611e598756 Add test cases for function node (#1402)
* Add test cases for function node

* Remove test case for keys() in global context
2017-10-12 20:47:52 +01:00
Hiroki Uchikawa
937d79d28f Add test cases for debug node (#1438) 2017-10-12 20:47:13 +01:00
Hiroyasu Nishiyama
23c2a771d3 fixed unmatched HTML tags (#1437) 2017-10-11 13:31:37 +01:00
Dave Conway-Jones
58a890e836 completely remove unnecessary callback
to Fix #1436
2017-10-11 08:52:28 +01:00
Dave Conway-Jones
6a869e120c speed up debug window - only process required number of messages (#1378)
* speed up debug window - only process required number of messages

* tiny optimisation to debug utils stack handler

* remove unnecessary callback

(and rename function)
2017-10-10 21:53:25 +01:00
Dave Conway-Jones
ae7c298b1a let default apply if msg.delay not set in override mode. (#1397)
* let default apply if msg.delay not set in override mode.

* Update tests to match

* allow msg.delay to be 0 if wanted

and test for that
2017-10-10 21:40:09 +01:00
Hiroki Uchikawa
53bfe12ac1 Add test cases for switch node (#1426) 2017-10-10 21:37:34 +01:00
Henri Bouvier
140ea683a6 [fix] github oauth strategy when Root is not / (#1430) 2017-10-10 21:24:44 +01:00
Kazuhito Yokoi
0634a97598 Fix global.keys() bug in function node (#1417)
* Fix global.keys() bug in function node

* Filter set(), get() and keys() in global.keys() method
2017-10-10 21:13:38 +01:00
Kazuhito Yokoi
3479c794de Modify JSONata Expression editor to refer to language files (#1433) 2017-10-10 20:21:41 +01:00
Kazuhito Yokoi
89cad116f7 Update translation file for JSONata (jsonata.json) (#1432) 2017-10-10 20:21:19 +01:00
Nick O'Leary
19c84eb694 Add commit history view in sidebar 2017-10-09 23:37:19 +01:00
Nick O'Leary
eae390acf5 Disable view-diff button for deletes/unknown files 2017-10-09 12:10:00 +01:00
Nick O'Leary
10567afbb9 Add unified diff view to version control tab 2017-10-09 00:11:07 +01:00
Nick O'Leary
51bad3bf3c Add dual text-diff 2017-10-08 22:03:06 +01:00
Nick O'Leary
9134d8841d Update ISSUE_TEMPLATE.md 2017-10-08 14:04:35 +01:00
Nick O'Leary
e9a026c131 Add issue/pr templates 2017-10-08 14:02:05 +01:00
Nick O'Leary
9a2fd0e2b2 Add initial version control sidebar with commit function 2017-10-07 00:18:20 +01:00
Nick O'Leary
522f7e6844 Do not include creds when calculating flow revision hash 2017-09-28 22:34:21 +01:00
Hiroki Uchikawa
cb4f46decc Fix circular reference in join node (#1412)
and add a test case
2017-09-28 19:09:54 +01:00
Hiroki Uchikawa
81256279a8 Fix wrong argument in change node (#1415)
and add test cases
2017-09-28 10:06:31 +01:00
Dave Conway-Jones
039bd1ddc0 Auto hide empty palette categories (#1395)
to close #1382
2017-09-27 17:05:18 +01:00
Dave Conway-Jones
0791d4797f Update ACE to test and add python highlighter (#1373) 2017-09-27 17:04:01 +01:00
Nick O'Leary
6a06142e1e Allow credSecret to be managed via project settings 2017-09-26 22:51:08 +01:00
Kazuhito Yokoi
ef53dca062 Handle escape characters in template node which uses Mustache format and JSON output mode (#1377)
* Handle escape characters in template node which uses Mustache format and JSON output mode

* Handle escape characters in template node which uses Mustache format and JSON output mode
2017-09-21 13:38:45 +01:00
Richlv
6ce761edda Update settings.js (#1404)
fix typo in a comment
2017-09-21 13:37:34 +01:00
Nick O'Leary
d8fd218409 Allow project dependencies to be edited in dialog 2017-09-21 11:19:24 +01:00
Nick O'Leary
edc2310599 Move project sidebar to project settings dialog 2017-09-20 22:51:28 +01:00
Nick O'Leary
b1cd13d629 Initial projects implementation 2017-09-20 10:30:07 +01:00
btsimonh
b81940351f Allow port zero for Express (#1363)
* Allow uiPort to be 0 (i.e. distinguish from undefined).  When Express runs up, catch the real port number to settings.serverPort, and use that in getListenPath if set, else use uiPort.
2017-09-17 09:30:39 +01:00
Kazuki Nakanishi
a42e99c4aa Fix the appearance of 'is between' rule on switch node property (#1383) 2017-09-17 08:46:47 +01:00
HirokiUchikawa
ff40b521b7 Fix problem with multi-byte character (#1391) 2017-09-17 08:46:14 +01:00
Nick O'Leary
85392496e7 Allow setTimeout in Function node to be promisified in node 8 2017-09-12 15:13:13 +01:00
Jeston Tigchon
29cae9975e Upgrade JSONata to v1.3.0 (#1386) 2017-09-07 21:58:29 +01:00
Kosuke Akizuki
170d6b28f8 Change font family (#1357)
thanks  @k4zzk
2017-08-24 12:14:55 +01:00
Nick O'Leary
9a8b404054 Split localfilesystem storage plugin into component parts 2017-08-23 17:31:33 +01:00
Nick O'Leary
41af5187aa Reorganise red/api layout to better componentise 2017-08-22 22:26:29 +01:00
Dave Conway-Jones
a844ca161f Spinner fixes (#1371)
* Fix for function node invalid spinner values

to close #1370

* better validation of spinners for inject and delay

(don’t allow negative numbers)

* remove need for declaring local min variable
2017-08-21 22:00:23 +01:00
btsimonh
e09efba313 mqtt: Add 'name' to mqtt-broker node, and label it by this if it is set. (#1364)
This allows you to easily distinguish between broker nodes which are talking to the same server but with different credentials.
2017-08-09 22:22:40 +01:00
Nick O'Leary
96a0dbea2d Don't include subflow meta-port nodes in exported selection
Fixes #1362
2017-08-08 15:48:54 +01:00
Nick O'Leary
5b3b5271ad Remove test diff code 2017-08-07 16:38:15 +01:00
Kazuhito Yokoi
d7d13c12fe Modify messages to refer to language files (#1361) 2017-08-07 10:00:28 +01:00
Nick O'Leary
54220d0e71 Ensure shade elements have a higher z-index than ui elements 2017-08-04 22:20:58 +01:00
Nick O'Leary
4a2e3586f1 Allow delay node in rate-limit mode to be reset
Fixes #1360
2017-08-04 21:09:00 +01:00
Nick O'Leary
f808e85da9 Diff view: subflows can have port labels as well 2017-08-04 14:26:05 +01:00
Nick O'Leary
1671d1f580 Allow expanding diff elements to stay in-sync deeper 2017-08-04 14:23:28 +01:00
Nick O'Leary
7de1bf9d95 Better node properties layout in diff table 2017-08-03 23:04:39 +01:00
Nick O'Leary
7368b0cefb Make diff tool a maximised tray rather than dialog 2017-08-03 09:58:25 +01:00
Nick O'Leary
4af43d676a Include input/output labels in diff view 2017-08-02 21:57:23 +01:00
Nick O'Leary
67dc848b2d getNodeIcon should handle subflow types properly 2017-08-02 21:55:25 +01:00
Nick O'Leary
7ec8f0d26b Do not include tab types in typeSearch dialog 2017-08-02 21:54:58 +01:00
Nick O'Leary
eaf08a9971 Keep local/remote diff objects in sync as they expand 2017-07-31 23:29:36 +01:00
Nick O'Leary
5bdb9e972e Add httpStatic log statement on start up 2017-07-26 11:45:49 -07:00
Nick O'Leary
d4d87054c4 Ensure tab property changes are listed in diff view 2017-07-26 07:55:53 -07:00
Nick O'Leary
0f93929544 Fix diff view node properties table rendering 2017-07-26 07:47:19 -07:00
Nick O'Leary
1c0e794f87 Ensure tabs get their definition object properly attached 2017-07-26 07:46:22 -07:00
Nick O'Leary
f9bce5a5f9 Changelog for 0.17.5 2017-07-23 17:32:27 +01:00
Nick O'Leary
797ae096c8 Add express-session missing dependency for oauth 2017-07-23 17:31:42 +01:00
Nick O'Leary
6d76918424 Fix improper type tests is core test cases 2017-07-22 22:42:35 +01:00
Nick O'Leary
2aced893c6 File node: recreate write stream when file deleted
Fixes #1351
2017-07-22 22:28:45 +01:00
Nick O'Leary
f0373cd789 Add flow stopping trace messages 2017-07-21 11:15:40 +01:00
Kazuki Nakanishi
2f88dc64fc Fix userDir test case when .config.json exists (#1350) 2017-07-21 11:12:04 +01:00
Nick O'Leary
781ca77794 Do not try to send msg after http request error handled
Fixes #1344
2017-07-19 22:37:29 +01:00
Kazuhito Yokoi
c6e453fb00 Fix boundary problem in range node (#1338)
* Fix boundary problem in range node

* Remove duplicated test case

* Empty commit to retry Travis CI
2017-07-19 16:42:39 +01:00
Kazuhito Yokoi
a40b3dd377 Modify messages in node properties to refer messages.json (#1339) 2017-07-19 13:50:34 +01:00
martiall
096b3534d8 Fix settings.js replacing webSocketVerifyClient by webSocketNodeVerifyClient (#1343) 2017-07-14 11:34:29 +01:00
Nick O'Leary
5324244c55 Bump for 0.17.4 2017-07-10 13:16:13 +01:00
Nick O'Leary
993f1dc853 Add request node test case for POSTing 0 2017-07-09 12:18:05 +01:00
Patrik Åkerfeldt
d8a4e9e1ab Allow false and 0 in payload for httprequest (#1334) 2017-07-09 12:17:54 +01:00
Kazuhito Yokoi
b3ffd33507 Add file extension into flow name of library automatically (#1331) 2017-07-09 11:58:17 +01:00
Nick O'Leary
c93870316c Fix accessing global context from jsonata expressions
Fixes #1335
2017-07-09 10:40:23 +01:00
Nick O'Leary
fc9906624e Disable editor whilst a deploy is inflight
Fixes #1332
2017-07-08 21:16:52 +01:00
Nick O'Leary
ba6209ba54 Replace Unknown nodes with their real versions when node loaded 2017-07-08 17:30:17 +01:00
Nick O'Leary
f9769a73fe Retry auto-install of modules that fail
- introduces autoInstallModulesRetry - default 30000
 - backs off interval if repeated failures
 - fixes notification to the editor of an auto-reinstall
2017-07-08 17:30:17 +01:00
Kazuhito Yokoi
3a2f56cb95 Fix column name in link nodes to refer language file (#1330) 2017-07-07 11:43:07 +01:00
Nick O'Leary
a4d33879dc Use namespaces with link node title attributes i18n name
Fixes #1329
2017-07-06 17:57:53 +01:00
Nick O'Leary
e2a91d1ea9 Tidy up GPIO pin table presentation
Fixes #1328
2017-07-06 00:00:08 +01:00
Nick O'Leary
f30f80d117 Join: count of 0 should not send on every msg 2017-07-05 14:12:28 +01:00
Nick O'Leary
266274135e Handle importing only one end of a link node pair 2017-07-04 23:40:37 +01:00
Nick O'Leary
a10439b67c Make sending to Debug synchronous again
Fixes #1323

Being asynchronous meant the msg that was eventually sent to
Debug could be a modified version from later in the flow, if
the flow was other synchronous.
2017-07-04 23:30:51 +01:00
Nick O'Leary
0fd8d0e2bf Make send-error behaviour optional in file node
Existing nodes will have sendError enabled. New instances
will default to it being disabled.
2017-07-04 20:12:53 +01:00
Nick O'Leary
47e2707fd3 Restore File In node behaviour of sending msg on error 2017-07-04 19:55:09 +01:00
Nick O'Leary
f7bb4a7d60 Expose context.keys within Function node 2017-07-04 14:52:14 +01:00
Nick O'Leary
6102a31a31 JSON parser default should be not formatting output
If its a checkbox, then the default value should be a boolean,
not a string. Because "false" is truthy.
2017-07-04 13:44:37 +01:00
Nick O'Leary
1692c3b102 Update changelog/package for 0.17.3 2017-07-04 10:06:24 +01:00
Kazuhito Yokoi
ac60725d2a Fix flow library in menu to support period characters as flow name (#1320) 2017-07-04 10:02:24 +01:00
Nick O'Leary
1542f73fa5 Fix global leaks in theme.js 2017-07-04 09:43:16 +01:00
Nick O'Leary
70a22187f7 editorTheme not setting custom css/scripts properly 2017-07-04 09:33:27 +01:00
Kazuki Nakanishi
347e598715 Fix missing icons for some nodes (#1321) 2017-07-04 09:04:27 +01:00
Nick O'Leary
a737810c50 Add reformat button to JSONata test data editor 2017-07-03 21:57:55 +01:00
Nick O'Leary
92654a71fb Remove unused oldDepth from Delay node 2017-07-03 21:27:45 +01:00
Nick O'Leary
18615640e0 Update delay node status without spawning unecessary intervals 2017-07-03 21:23:14 +01:00
Nick O'Leary
b8c80a2310 Avoid stringify ServerResponse and Socket in Debug node
Fixes #1311
2017-07-03 20:55:04 +01:00
Kazuki Nakanishi
c34c98386e Fix creating userDir other than system drive on Windows (#1317) 2017-07-03 15:22:49 +01:00
Nick O'Leary
d8a3d2793f Trigger node not handling a duration of 0 as block mode
Fixes #1316
2017-07-03 15:20:37 +01:00
Dave Conway-Jones
360b0d9997 correct gpis pin 13 typo
to address #1314
2017-07-02 20:53:27 +01:00
Nick O'Leary
356f46aaf4 Bump 0.17.2 2017-07-02 11:15:09 +01:00
Dave Conway-Jones
87ac0507d9 and finally fix the gpio labels 2017-07-02 11:07:11 +01:00
Nick O'Leary
63657c18e2 Bump 0.17.1 2017-07-02 10:57:45 +01:00
Dave Conway-Jones
817f92a50e refix GPIO - more correctly - backwards compatible
existing installations now keep working
2017-07-02 09:59:37 +01:00
Dave Conway-Jones
304be96dd6 stop gpis node reporting bad status message on slow Pi 2017-07-02 00:50:55 +01:00
Dave Conway-Jones
9639081e7e re-sort package dev dips 2017-07-01 22:42:48 +01:00
Dave Conway-Jones
dca553048a Fix PI gpio to use BCM 2017-07-01 22:42:13 +01:00
Nick O'Leary
6201ed4d55 Prevent event thread contention when sending to Debug node
Closes #1311
2017-07-01 22:01:56 +01:00
Nguyen Thai Vinh
6db2c04585 Fix Bug: Can not display node icon when npm package has scope (#1305) (#1309) 2017-06-30 21:49:35 +01:00
Nick O'Leary
f3840512ba Clear moved flag when nodes are deployed 2017-06-30 21:48:38 +01:00
Nick O'Leary
9a6cf58565 Bump version for 0.17.0 2017-06-30 11:32:56 +01:00
Nick O'Leary
78076122ba Remove console.log 2017-06-30 10:39:28 +01:00
Nick O'Leary
7429f66d6b Mark nodes that have really moved as changed 2017-06-29 23:23:16 +01:00
Nick O'Leary
e59eff83b9 Ensure default switch node config matches what a no-op edit gives 2017-06-29 23:22:31 +01:00
Nick O'Leary
2083d85afa Update jsonata to latest 2017-06-29 15:55:55 +01:00
timolehto
4c9f1369c8 Set Proxy-Authorization when needed (#1146)
fixes #1145
2017-06-29 15:55:12 +01:00
Dave Conway-Jones
adca1d7855 File node - don't hose status web socket on multiple file writes
and add close behaviour to info
2017-06-29 11:40:50 +01:00
Kazuhito Yokoi
dfc4e99560 Add Chinese translation file (editor.json) (#1303) 2017-06-29 11:38:21 +01:00
Nick O'Leary
344076c943 Fix settings tests to remove nodeSettings reference 2017-06-29 11:36:16 +01:00
Nick O'Leary
710f1e2ca0 Be consistent in how node settings are addressed 2017-06-29 11:17:39 +01:00
Nick O'Leary
74ea85d19c Ensure existing grid settings are migrated to new keys 2017-06-28 22:16:11 +01:00
Dave Conway-Jones
dded98e30c tidied up implementation of file node close fix 2017-06-28 17:50:09 +01:00
Dave Conway-Jones
160c27c15a file node - close files when required 2017-06-28 17:36:04 +01:00
Nick O'Leary
a6a9025bab Typo in http node help 2017-06-28 17:15:42 +01:00
Chaya Stern
a780d4463c Support category with more than one word (#1301) 2017-06-28 14:27:54 +01:00
Nick O'Leary
23539ee907 Merge branch 'master' of github.com:node-red/node-red 2017-06-28 14:20:03 +01:00
Dave Conway-Jones
b515df611d fix file node to overwrite multiple files 2017-06-28 13:28:04 +01:00
Nick O'Leary
0d896fef0b Update Changelog for 0.17 2017-06-28 11:11:40 +01:00
Kazuhito Yokoi
283d5c64cb Update Japanese translation files (jsonata.json and messages.json) (#1300)
* Update Japanese translation file(jsonata.json)

* Update Japanese translation file(messages.json)
2017-06-28 09:26:07 +01:00
Kazuhito Yokoi
3134bc432b Improve editor messages (jsonata.json and messages.json) (#1299)
* Modify typo and improve messages in jsonata.json

* Change csv to CSV(messages.json)
2017-06-28 09:25:35 +01:00
Nick O'Leary
fd93fef73e Better template node help example 2017-06-27 21:53:12 +01:00
Dave Conway-Jones
8939a9c786 tiny bit of ; lint in switch node
#ocd
2017-06-27 17:16:18 +01:00
Nick O'Leary
52c0d360b2 Add buffer joiner mode to Join node 2017-06-27 17:11:11 +01:00
Dave Conway-Jones
d99432bff1 Use correct Buffer.from method rather than constructor
exec, tcp, ump and file nodes
2017-06-27 17:11:36 +01:00
Dave Conway-Jones
4dd2d3ac7d fix tcp node new Buffer alloc size 0 2017-06-27 16:58:17 +01:00
Nick O'Leary
aa7fe3668c HTTP Request node: add info on how to do form encoding 2017-06-27 14:58:13 +01:00
Nick O'Leary
83ebcf1dae Reset palette-manager tabs when settings dialog reopened 2017-06-27 14:17:26 +01:00
Nick O'Leary
c9317659c5 Prevent unmodified msg.headers from breaking HTTP Request flows
Closed #1015
2017-06-27 11:24:20 +01:00
Nick O'Leary
6562c558de Add help info for split node 2017-06-27 11:24:20 +01:00
Dave Conway-Jones
303f67c036 let node installer try to save with ~ version prefix to allow minor updates 2017-06-27 10:17:09 +01:00
Dave Conway-Jones
2482d122b8 Let join node auto re-assemble buffers
and add test
2017-06-26 23:10:08 +01:00
Nick O'Leary
1733c38b5c Update general dependencies 2017-06-26 15:03:32 +01:00
Nick O'Leary
7a1e4e9e99 Ensure all ace editors are destroyed in the expression editors 2017-06-26 14:23:48 +01:00
Nick O'Leary
e590313297 Expression editor - clear legacy flag for blank expressions 2017-06-26 14:12:20 +01:00
Nick O'Leary
b63d243e33 Update JSONata to 1.2.4
Closes #1275
2017-06-26 13:55:22 +01:00
Nick O'Leary
e9c1216d5c Handle logging out and already logged-out editor
Fixes #1288
2017-06-26 10:49:06 +01:00
Nick O'Leary
df9e50445e Merge branch 'master' into 0.17 2017-06-26 10:18:42 +01:00
Kazuhito Yokoi
61339face6 Add and improve Japanese translation file(editor.json, infotips.json and messages.json) (#1284)
* Update Japanese translation(editor.json)

* Add Japanese translation file(infotips.json)

* Add Japanese translation file(messages.json)
2017-06-26 10:08:05 +01:00
Chaya Stern
9cd751e977 Fix bug: Export Subflows (#1282)
* fix bug with export subflows

* fix bug with export config-nodes
2017-06-26 10:07:44 +01:00
Kazuhito Yokoi
7aa08ff885 Add Japanese translation file(jsonata.json) (#1271) 2017-06-26 09:41:16 +01:00
Dave Conway-Jones
a824caf712 update core nodes to use newer Buffer syntax 2017-06-24 13:53:45 +01:00
Dave Conway-Jones
395210e4f0 destroy editor to ensure fully removed on close (function, template, comment)
to close #1279
2017-06-24 12:15:03 +01:00
Dave Conway-Jones
e23354b2bb tidy up split node to remove todo comments 2017-06-24 12:09:52 +01:00
Dave Conway-Jones
bc472eb0b3 Bump ACE editor to v1.2.7 2017-06-23 22:08:03 +01:00
Dave Conway-Jones
256f8e7226 add allow es6 to .jshintrc 2017-06-23 21:49:35 +01:00
Dave Conway-Jones
f41959537b travis - don't allow node 8 fails, (and re-add 7) 2017-06-23 21:49:10 +01:00
Dave Conway-Jones
c9e05cf9f6 split node - in object mode allow msg.complete on its own 2017-06-23 21:48:13 +01:00
Dave Conway-Jones
82d9a02d92 Move udp sock error listener to only be instantiated once. 2017-06-23 16:20:28 +01:00
Dave Conway-Jones
dc9fa81346 let split of objects use key to set another property (e.g. topic)
and add tests
and update messages
2017-06-22 18:42:54 +01:00
Dave Conway-Jones
b91c178200 add "split/stream" ability to file in node
and add teste
2017-06-22 18:41:49 +01:00
Simon Asp
adebdf36a5 Bug fix in exec node. White spaces in arguments now works (#1285) 2017-06-18 11:55:39 +01:00
Dave Conway-Jones
4f34980c9f adding streaming modes into split node
and add tests
2017-06-16 22:26:14 +01:00
Dave Conway-Jones
e70766a535 fix split to pass tests... 2017-06-16 09:21:53 +01:00
Dave Conway-Jones
55110dfbac let split node reassemble based on a final packet. (as well as the first) 2017-06-16 09:16:23 +01:00
Dave Conway-Jones
56405ac903 let join also accumulate strings (and not fail) 2017-06-15 00:11:35 +01:00
Nick O'Leary
2b2136c468 Add typedInput binary mode icon 2017-06-14 22:29:38 +01:00
Dave Conway-Jones
f12031ee9e redo delay node status messages to be interval based 2017-06-14 22:25:44 +01:00
Nick O'Leary
c26852da77 Add buffer support to split node 2017-06-13 21:01:27 +01:00
Nick O'Leary
d9dc171c28 Add buffer mode to typedInput 2017-06-13 21:01:27 +01:00
Dave Conway-Jones
d407f31ae5 stop delay node spamming web socket (when in fast rate limit mode) 2017-06-09 19:42:12 +01:00
Nick O'Leary
f688b8d299 Refresh sidebar info when tab is changed 2017-06-06 10:27:03 +01:00
Dave Conway-Jones
d8e6a7b687 better spacing for library widget 2017-06-05 17:04:31 +01:00
Dave Conway-Jones
7c42b04eff updated split/join node (split still needs work before release) 2017-06-05 17:04:17 +01:00
Nick O'Leary
f527841c29 Fix gridSize for node width calculation to avoid odd resizing 2017-06-05 16:10:47 +01:00
Nick O'Leary
48a8dc0989 Redraw grid properly if gridSize changes 2017-06-05 16:07:21 +01:00
Nick O'Leary
7e35c9c754 Return flow rev on reload api when api v2 enabled
Closes #1273
2017-06-05 15:16:26 +01:00
Nick O'Leary
7502a2b1ff Update trigger help 2017-06-05 14:01:24 +01:00
Nick O'Leary
6c2de40dba Add cookie handling to HTTP Request node 2017-06-05 11:33:37 +01:00
Dave Conway-Jones
ef90f19eaa Make exec node explicitly call SIGTERM for default 2017-06-05 09:47:42 +01:00
Dave Conway-Jones
90ab34591a Add node 8 to travis (with allow failure) 2017-06-05 08:50:37 +01:00
Kazuhito Yokoi
21d3a3dd1e Modify typo in jsonata.json (#1270) 2017-05-31 08:44:44 +01:00
Nick O'Leary
b44e70115b Delay/Range node help tidy up 2017-05-26 14:27:53 +01:00
Nick O'Leary
ac31957707 Update delay node ui 2017-05-26 13:51:58 +01:00
Nick O'Leary
65e27a268d Scroll sidebar info tab to top when changing content 2017-05-24 21:41:18 +01:00
Nick O'Leary
6bd59b10c7 Ensure info tab sections are collapsible when set from palette 2017-05-24 21:11:23 +01:00
Nick O'Leary
6a6a692891 Only show tab info if there is an active tab 2017-05-24 20:58:16 +01:00
Nick O'Leary
479b18354d More core node info help tidy up 2017-05-24 16:55:53 +01:00
Nick O'Leary
9c6452544b Don't try to nls status text starting with '.'
Fixes #1258
2017-05-24 12:21:35 +01:00
Nick O'Leary
0a6ff900da Add guard against the http-request buffer fix being reverted 2017-05-24 11:18:52 +01:00
bartbutenaers
f54f863611 Revert "Multipart streaming"
This reverts commit bd671e75e6.
2017-05-24 11:08:08 +01:00
bartbutenaers
9cc04da7b2 Multipart streaming 2017-05-24 11:07:09 +01:00
bartbutenaers
d7f5b0c9d7 Always request buffer 2017-05-24 11:05:57 +01:00
bartbutenaers
9bd4598c6a Buffer fix 2017-05-24 11:04:33 +01:00
bartbutenaers
e3b052bc38 initial commit 2017-05-24 11:04:33 +01:00
Nick O'Leary
f215970649 Add http-request node unit tests 2017-05-24 10:36:47 +01:00
Nick O'Leary
dfe1cd4f90 Tidy up more core node help text 2017-05-23 17:26:23 +01:00
Nick O'Leary
3d2e6aea7b Remember test expression data on a per-node basis 2017-05-23 15:54:09 +01:00
Nick O'Leary
749b0d7019 Tidy up parser node edit dialogs and help text 2017-05-23 14:18:09 +01:00
Dave Conway-Jones
7978f85f7a Add Pretty print option to JSON node and
make XML and CSV nodes more consistent look and feel
2017-05-23 09:35:37 +01:00
Nick O'Leary
bd14acb68a Change debug message menu icon 2017-05-22 22:21:52 +01:00
Nick O'Leary
1e9ce550db Handle empty array/objects in debug view 2017-05-22 20:13:39 +01:00
Nick O'Leary
6278dfa77e Only check for reordered outputs if outputMap defiend 2017-05-22 13:45:56 +01:00
Nick O'Leary
2a3e355437 Add per-node filter option to Debug pane 2017-05-22 11:35:55 +01:00
Dave Conway-Jones
f6b0459d27 change pin selection table for pi gpis nodes 2017-05-20 02:36:03 +01:00
Dave Conway-Jones
790d6912fd re-add return to http request (removed in error) 2017-05-20 02:35:41 +01:00
Nick O'Leary
e69e5b4f50 Ensure node labels are reordered properly to match outputs 2017-05-19 22:56:29 +01:00
Nick O'Leary
483306e73c Avoid circular references when stingifying node objects 2017-05-19 20:36:22 +01:00
Dave Conway-Jones
1148a0b637 tcp request - remove confusing timeout wording from info 2017-05-15 22:05:33 +01:00
Dave Conway-Jones
524021f0fa http request node add transport validity check and warn. 2017-05-15 22:04:47 +01:00
Nick O'Leary
5b5f9aa01d Add 'none' placeholder for empty port label form 2017-05-15 16:26:42 +01:00
Nick O'Leary
f97f92c297 Strip BOM character from JSON files if present
Fixes #1239
2017-05-15 14:21:12 +01:00
Nick O'Leary
9d4139085b Handle HTTP In url that is missing its leading /
Fixes #1218
2017-05-15 14:10:06 +01:00
mw75
0ee7ffb5e5 Version check no meta (#1243)
* Version check on module loading - remove all metadata information bevor comparing the versions.

* refined regex
2017-05-15 13:57:35 +01:00
Nick O'Leary
8a7bb1be9f Log error when non-msg-object is returned from a Function 2017-05-15 13:54:05 +01:00
Nick O'Leary
d4135e80a6 Timeout a node that fails to close - default 15s timeout 2017-05-15 13:05:33 +01:00
Nick O'Leary
a5ade39d7c Fix selection of link nodes 2017-05-13 22:39:06 +01:00
Nick O'Leary
f39b4e7d22 Node status should be on by default 2017-05-12 22:47:59 +01:00
Nick O'Leary
080469cdf5 Ensure debug node marked changed when button pressed 2017-05-12 22:35:29 +01:00
Nick O'Leary
835ad29417 Fix pop-out debug window for all the recent updates 2017-05-12 22:22:47 +01:00
Nick O'Leary
c09bea4710 Add debug message menu 2017-05-12 22:12:55 +01:00
Nick O'Leary
879c0f4114 Don't mark a node changed when going from none to blank labels 2017-05-12 19:55:36 +01:00
Nick O'Leary
5feb07583b Don't include msg. in debug message copied paths 2017-05-12 10:19:50 +01:00
Nick O'Leary
5388002f54 Format Buffer numbers as hex by default 2017-05-11 21:15:16 +01:00
Nick O'Leary
c80fa9914b Merge branch '0.17' of github.com:node-red/node-red into 0.17 2017-05-11 21:00:40 +01:00
Dave Conway-Jones
b43d566968 Final TCP node nits - let 0 do it's thing as per every other timeout 2017-05-11 19:11:51 +01:00
Dave Conway-Jones
6b4e15dd0f fix tcp port not waiting as per info/previous behaviour
add separate return immediate mode rather than conflate ideas
2017-05-11 17:24:20 +01:00
Nick O'Leary
d9ef32d7e8 Remember formatting choices for dbg msg elements 2017-05-11 17:00:49 +01:00
Dave Conway-Jones
49389d6f06 Add new msg.delay option to delay node
and msg.reset to clear/fluch existing delays
2017-05-11 16:13:40 +01:00
Nick O'Leary
c75dc3cc36 Add test coverage for deleting a flow 2017-05-11 15:39:55 +01:00
btsimonh
c0eabf0438 Add note of removed flows in diffConfig (#1253) 2017-05-11 15:39:41 +01:00
Nick O'Leary
7730d0a4f8 Merge branch 'master' into 0.17 2017-05-11 15:10:12 +01:00
Nick O'Leary
e79da408a8 Allow debug msg elements to be pinned 2017-05-11 15:08:10 +01:00
Nick O'Leary
7381784d0f Only show debug tools under the debug tab 2017-05-10 16:56:03 +01:00
Nick O'Leary
085fb283e5 Fix test for valid js identifiers in debug path construction 2017-05-10 16:25:46 +01:00
Nick O'Leary
61e0e50e7b Remove unused modified flag on debug messages 2017-05-10 16:11:26 +01:00
Nick O'Leary
00460d856b Add copy path/value buttons to debug messages 2017-05-10 15:49:56 +01:00
Nathanaël Lécaudé
48958f392f TCP In: Fix error in timout callback (#1249)
Thanks @natcl
2017-05-09 22:09:21 +01:00
Dave Conway-Jones
a84efeb5d5 stop using sudo for Pi gpio access
(as PI user doesn’t need it) - other users must be in gpio group
2017-05-08 09:04:26 +01:00
Nick O'Leary
1c8c05ae04 Fix padding of config node edit dialog 2017-05-05 16:01:52 +01:00
Nick O'Leary
401d386812 Add force-deploy option when conflict detected 2017-05-05 15:52:37 +01:00
Nick O'Leary
6b07f58e8e NLS jsonata test messages 2017-05-05 13:43:39 +01:00
Dave Conway-Jones
6e8c978d12 Add sentence about clearing retained topic on mqtt
and use of administrator for ump on windows…
2017-05-05 12:31:18 +01:00
Nick O'Leary
5b2296b056 Add missing copyright header 2017-05-05 11:24:53 +01:00
Nick O'Leary
dbf0486acb Add JSONata expr tester and improved feedback 2017-05-05 11:23:24 +01:00
Nick O'Leary
b030e935ce Hide tip box on startup if disabled 2017-05-03 21:27:08 +01:00
Nick O'Leary
29bd43413a Add context.keys function to list top-level keys 2017-05-03 20:51:33 +01:00
Nick O'Leary
2249b9449c NLS Expression/JSON editor and fix their height calculation 2017-05-03 17:17:36 +01:00
Nick O'Leary
30920b1b78 Add $context/$flow/$global functions to jsonata 2017-05-03 15:48:30 +01:00
Nick O'Leary
8f92a3e875 Do not log node errors if handled by a Catch node 2017-05-03 13:42:38 +01:00
Nick O'Leary
ed1a55d9cd Provide feedback when enable/disable node fails 2017-05-03 13:29:35 +01:00
Nick O'Leary
93ef84f495 Move palette editor to settings panel 2017-05-03 11:38:16 +01:00
Nick O'Leary
ccfcbe8526 Move palette editor to userSettings dialog 2017-05-03 11:38:16 +01:00
Nick O'Leary
5938143002 Move view and keyboard into user settings dialog 2017-05-03 11:38:16 +01:00
Nick O'Leary
8135da71bd Add basic user settings panel 2017-05-03 11:38:16 +01:00
Dave Conway-Jones
a3c73a04c2 yet more core node info updates
sentiment, gpio, change and range
2017-04-26 21:52:33 +01:00
Dave Conway-Jones
7f90d31846 more core node info updates to newer style 2017-04-25 21:47:58 +01:00
Dave Conway-Jones
45fbd22e28 Update some core nodes info 2017-04-24 20:37:06 +01:00
Nick O'Leary
4689d56955 Allow a node to decide for itself if its button should be enabled or not
This means:

  1. an Inject node that has only been moved can still inject
  2. the Debug node is now marked as changed when its button is clicked
     which, without this fix, then prevented the button from being
     clicked to toggle its state again
2017-04-23 23:20:50 +01:00
Nick O'Leary
aa1b2808e7 Track node moves separately to node config changes 2017-04-23 23:20:36 +01:00
Cor Bosman
40ad4bdbd8 dont match only part of the node type (#1242) 2017-04-22 22:08:09 +01:00
Nick O'Leary
b6510d66e0 Update debug node to register the settings it uses 2017-04-22 09:03:52 +01:00
Nick O'Leary
4ea33ea482 Pass a 'removed' parameter to node close handler 2017-04-21 23:36:21 +01:00
Nick O'Leary
e13d410b4a Update tests for oauth -> strategy rename 2017-04-21 22:06:12 +01:00
Nick O'Leary
72da7e6c54 Rename oauth auth scheme to strategy as it works for openid 2017-04-21 21:54:48 +01:00
Nick O'Leary
fb05960d79 Allow oauth schemes provide a custom verify function 2017-04-21 21:17:18 +01:00
Nick O'Leary
7bd0943412 Provide single endpoint to load all node message catalogs
Replaces potentially dozens of http requests with one or two.
2017-04-21 11:49:35 +01:00
Nick O'Leary
bb2649d063 Ensure ace editor instances are freed if edit cancelled 2017-04-21 09:05:03 +01:00
Nick O'Leary
d743bdbf5a Clip overly long notification messages 2017-04-21 09:05:03 +01:00
Nick O'Leary
61890f19bc Use queryCommandSupported not queryCommandEnabled to check for copy support 2017-04-21 09:05:03 +01:00
Dave Conway-Jones
b756a8edef Make tcp send msg more consistent
to close #1236
2017-04-20 12:22:36 +01:00
Kazuki-Nakanishi
adcb2f1aa8 Fix exec node error tests on Windows (#1234) 2017-04-19 22:09:53 +01:00
Nathanaël Lécaudé
e574f4516f Update 31-tcpin.js (#1235)
TCP-IN: Add check to see if object exists, fixes issue #1222
2017-04-18 16:03:16 +01:00
Dave Conway-Jones
2ac9c11ec9 Add tip to tab description editor
(and remove icons)
2017-04-16 21:08:32 +01:00
Dave Conway-Jones
1c470ab9e3 Make tab info edit box resizable 2017-04-16 20:25:15 +01:00
Dave Conway-Jones
08b8a8e3af update messages for updated exec node 2017-04-16 20:24:38 +01:00
Dave Conway-Jones
11ee1a7dcb fix exec node error test 2017-04-13 11:48:33 +01:00
Dave Conway-Jones
a281b8c74e Make exec node spawn and exec outputs more consistent
(with an option to revert if necessary)
and new info docs
2017-04-13 11:36:54 +01:00
Nick O'Leary
5cb37148c6 Add editorTheme.logout.redirect to allow redirect on logout
Closes #1213
2017-04-12 21:41:16 +01:00
Kazuki-Nakanishi
05878d3176 Fix the test cases which sometimes fails due to timing. (#1228) 2017-04-12 20:54:31 +01:00
Nick O'Leary
d1c42262d6 Ensure all nodes have access to global context
Fixes #1230
2017-04-12 20:48:43 +01:00
Simon Hailes
8dcc114873 MQTT node - if Server/URL config contains '//' use it as a complete url; enabled ws:// and wss:// 2017-04-12 18:31:49 +01:00
Nick O'Leary
c54cf26848 Add support for oauth adminAuth configs 2017-04-12 10:09:03 +01:00
Nick O'Leary
bfb548636e Merge branch 'master' into 0.17 2017-04-11 14:53:44 +01:00
Nick O'Leary
36e1b2ba08 Don't process subscription for unauthenticated comms link
Fixes #851
2017-04-11 14:48:19 +01:00
Nick O'Leary
301ac279ff Handle IncomingMessage/ServerResponse object types in debug
Fixes #1202
2017-04-10 21:59:59 +01:00
Nick O'Leary
08d21ccba7 Clone credentials when passing to node
Fixes #1198
2017-04-10 21:45:04 +01:00
Nick O'Leary
62876ca377 Toggling debug node enabled/disabled state should set state dirty
Fixes #1203
2017-04-10 16:11:01 +01:00
Kazuki-Nakanishi
10f94148af Exec node for windows environment (#1200)
* Modify exec node to run on Windows.

* Remove unnecessary modification.
2017-04-10 16:06:19 +01:00
Nick O'Leary
31502c2ebc remove allow_failures flag from node 7.x 2017-04-10 15:51:24 +01:00
David
62b29ecb65 Make theme able to load custom javascript (#1211)
* Make theme able to load custom javascript
- Look for the field 'customScript' in editorTheme (settings.js)
- Add it to mustach context
- Load list on template side (index.mst)

* Add unit tests for customScripts

* Code review edits : generic behavior for theme.page.[css|scripts]
- Use the same way to share css and javascript files from a theme
- Allow string instead of array for theme.page.scripts
- Remove old customScript field
2017-04-10 15:46:44 +01:00
Nick O'Leary
67337e013a Merge branch 'master' into 0.17 2017-04-10 15:45:21 +01:00
Andrey Bezugliy
f987fa13ea Resolve dir argument of getLocalNodeFiles function (#1216)
* Resolve dir argument of getLocalNodeFiles function

The getLocalNodeFiles is called 3 times.  Each time it called, the callee needs to resolve the dir argument.
That was not done for several of calls, and local modules (specified in the "nodesDir" setting) were not returned to client because of that.

This fix will allow to make sure the dir is consistently resolved.

* Several changes in "localfilesystem_spec.js":
- Changed checkNodes to verify that every node's file property is resolved, i.e. containst absolute path, not relative.
- Added a unit-test "Finds nodes in settings.nodesDir (string,relative path)"
2017-04-10 15:41:20 +01:00
Nick O'Leary
73dfe631ce Add .trace and .debug to Node prototype 2017-04-10 15:32:40 +01:00
Nick O'Leary
83ca8147ca Merge branch 'pr_1197' into 0.17 2017-04-10 15:25:19 +01:00
Nick O'Leary
1c11e7f97b Shrink config node appearance in info table 2017-04-10 14:33:21 +01:00
Nick O'Leary
aefae79186 Display config nodes in Info sidebar table 2017-04-10 11:29:52 +01:00
Nick O'Leary
4b05a9bb6f Ensure flow info box updates after editing flow 2017-04-10 00:00:10 +01:00
Nick O'Leary
2453719a87 Make H3 sections in node help collapsible 2017-04-07 13:30:12 +01:00
Nick O'Leary
ea929b00e3 Hide Node info section when displaying changelog 2017-04-07 12:36:06 +01:00
Nick O'Leary
ede940a398 Allow tips to be hidden and cycled through 2017-04-07 12:24:39 +01:00
Nick O'Leary
67da853146 Add info tips back to the sidebar 2017-04-07 11:21:30 +01:00
Nick O'Leary
624befd704 Restructure info tab 2017-04-06 23:17:30 +01:00
Dave Conway-Jones
203539841d allow shadowing in .jshintrc (mainly to test signing commits) 2017-04-06 11:12:11 +01:00
Nick O'Leary
262db23f7d First pass of new node-info style 2017-04-05 16:19:23 +01:00
Dave Conway-Jones
28ea22f0e1 MQTT new style info 2017-03-29 21:45:28 +01:00
Dave Conway-Jones
3f349c3531 remove requirement for cmd in exec node config + new style info 2017-03-29 21:44:58 +01:00
Dave Conway-Jones
9928e8562a let inject "between time" also fire at start - Plus new info 2017-03-24 14:01:26 +00:00
Dave Conway-Jones
b1e3fc5761 remove repeat symbol from inject if repeat is 0 2017-03-23 22:04:53 +00:00
Nam Giang
b2390f1caf adding frequency configuration to pwm output (#1206) 2017-03-23 21:02:22 +00:00
Ben Hardill
8cc9aeba4a Fix docs 2017-03-23 20:06:11 +00:00
Ben Hardill
ba0823c38c Add support for rejectUnauthorized msg property
This update lets you pass msg.rejectUnauthorized=false
to allow you to connect to https sites that don't have
certs signed by recognised CAs
2017-03-23 19:48:48 +00:00
Nick O'Leary
b9379f2ddf Provide notification when new flows deployed in the background 2017-03-17 21:29:03 +00:00
Kazuki-Nakanishi
38a950a6dc Add description to flow same as subflow 2017-03-17 01:29:19 +09:00
Nick O'Leary
fb24dca019 Add JSON Expression editor 2017-03-12 23:52:31 +00:00
Nick O'Leary
07d131c945 Update jsonata 2017-03-12 22:04:38 +00:00
Dave Conway-Jones
0c1c710afe make sure MQTT client closes if redeploy during reconnect
to close #1193
Thanks @tedhuang for the excellent problem determination
2017-03-12 22:04:38 +00:00
Nick O'Leary
15cd93c30f Update follow_redirects to fix http_proxy handling
Fixes #1172
2017-03-12 22:04:38 +00:00
Ben Hardill
a5d9e17a8c Allow nodes to have translations not in core (#1183)
* Allow nodes to have translations not in core

Currently only languages in the core are checked when
the editor requests a translation. This means that if
a node includes more translations they are not checked.

This change removes the check against that short list,
but it only checks the first language from the browser
suported list

* remove whitespace
2017-03-12 22:04:37 +00:00
Kazuhito Yokoi
a82926dd0d Modify Japanese translation file for editor 2017-03-12 22:04:37 +00:00
Kazuki Nakanishi
12435b997a Added a name icon and a description label on edit subflow window. 2017-03-12 22:04:37 +00:00
Nick O'Leary
5945be95cf Treat missing msg properties as undefined rather than throw error
Fixes #1167
2017-03-12 22:04:37 +00:00
Nick O'Leary
5c2e7ce407 Update jsonata 2017-03-12 22:03:14 +00:00
Dave Conway-Jones
834e894b1d make sure MQTT client closes if redeploy during reconnect
to close #1193
Thanks @tedhuang for the excellent problem determination
2017-03-10 20:12:52 +00:00
Dave Conway-Jones
d25dac69d2 ask istanbul for more reports as default
and create a simple “grunt coverage” task synonym.
2017-03-10 20:04:14 +00:00
Kazuki-Nakanishi
3cc4173399 Extend timeout for the test case of installing non-existant path. (#1191)
to fix timeout on slower hosts
2017-03-10 13:59:44 +00:00
Nick O'Leary
36ab16c1ed Update follow_redirects to fix http_proxy handling
Fixes #1172
2017-03-09 22:49:22 +00:00
Nick O'Leary
5356373681 Finalise nodeSettings and update tlsConfigDisableLocalFiles
- increase test coverage around registerType
2017-03-09 21:06:49 +00:00
Nick O'Leary
f45a2643f2 Change default value of tlsConfigDisableLocalFiles to false 2017-03-09 20:01:44 +00:00
Nick O'Leary
e55933706d Merge branch 'nodeSettings' into 0.17 2017-03-09 20:00:54 +00:00
Kazuki-Nakanishi
3b3d696e45 Add the node setting tlsConfigDisableLocalFiles for tls node. (#1190)
* Add the node setting tlsConfigDisableLocalFiles for tls node.

* Fix the bug that shows node setting when specified in settings.js and exportable is false.
2017-03-09 19:58:34 +00:00
Kazuki-Nakanishi
281351e6b3 Add istanbul to Gruntfile.js (#1189) 2017-03-09 15:28:12 +00:00
Kazuki-Nakanishi
34089aec70 Allow a node to declare what settings should be made available to the editor. (#1185)
* Implement register/exportNodeSettings.

* Change normaliseRegisterTypeName to normaliseNodeTypeName. Force it to name in a camel case.
2017-03-08 14:38:33 +00:00
Kazuki-Nakanishi
3658d0e039 Add wait for writing a library entry into a file. (#1186) 2017-03-08 10:00:40 +00:00
kazuhitoyokoi
7a10636128 Add node whitelist function (#1184) 2017-03-08 10:00:00 +00:00
Ben Hardill
604ba7f4bc Allow nodes to have translations not in core (#1183)
* Allow nodes to have translations not in core

Currently only languages in the core are checked when
the editor requests a translation. This means that if
a node includes more translations they are not checked.

This change removes the check against that short list,
but it only checks the first language from the browser
suported list

* remove whitespace
2017-03-08 09:58:39 +00:00
Dave Conway-Jones
27b7fb54e8 nail trigger test for windows AND linux 2017-03-06 19:06:10 +00:00
Dave Conway-Jones
d351aa842c add port label to file node and update info 2017-03-06 19:05:52 +00:00
Dave Conway-Jones
59da705b8f really close tcp node connection right away (if told to)
rather than wait then close
2017-03-06 19:05:16 +00:00
Dave Conway-Jones
99b8f16d88 give up on SIGQUIT for widows test
revert to SIGINT
2017-03-06 17:42:59 +00:00
Dave Conway-Jones
06ffe722d4 better tests for windows nodes 2017-03-06 17:40:09 +00:00
Dave Conway-Jones
6264104642 comment out 2nd exec node kill tests
(to be revisited)
2017-03-06 16:49:51 +00:00
Dave Conway-Jones
c97812c340 retry exec node tests
(diff behaviour on host)
2017-03-06 16:25:38 +00:00
Nick O'Leary
bd4c578230 NLS messages for Flow enabled/disable 2017-03-06 15:55:38 +00:00
Nick O'Leary
6ec2949b6f Don't display port labels for subflow pseudo-port nodes 2017-03-06 15:41:19 +00:00
Nick O'Leary
1ff23ebfd9 Stop some ui elements from clearing url anchor when clicked 2017-03-06 15:30:42 +00:00
Nick O'Leary
7698990e37 Allows flows to be enabled/disabled in the runtime 2017-03-06 15:29:05 +00:00
Nick O'Leary
17e092afb3 Allow tabs to be enabled/disabled in the editor 2017-03-06 15:29:05 +00:00
Dave Conway-Jones
2db65b9d1f fixes for grunt files tests on Windows 2017-03-06 15:28:23 +00:00
Dave Conway-Jones
c6436f47eb let exec node take msg.kill SIG... param and pid param
and redo test
2017-03-06 15:27:29 +00:00
Nick O'Leary
e88b4a4412 Merge pull request #1181 from kazuhitoyokoi/master
Modify Japanese translation file for editor
2017-03-06 11:22:33 +00:00
Kazuhito Yokoi
01a177adfb Modify Japanese translation file for editor 2017-03-06 11:18:23 +00:00
Nick O'Leary
052b5e0ea8 Merge pull request #1174 from Kazuki-Nakanishi/master
Added a name icon and a description label on edit subflow window.
2017-03-03 16:19:18 +00:00
Kazuki Nakanishi
68cd447109 Added a name icon and a description label on edit subflow window. 2017-03-03 14:10:20 +00:00
Dave Conway-Jones
4a8a5ed8d4 Add port labels to inject node (to show types) 2017-03-03 10:21:07 +00:00
Dave Conway-Jones
84077505b0 add off option to logging settings comment 2017-03-02 23:12:40 +00:00
Dave Conway-Jones
c4554b71d3 Add link label value as portLabels 2017-03-02 23:12:06 +00:00
Nick O'Leary
63ce743571 Treat missing msg properties as undefined rather than throw error
Fixes #1167
2017-03-02 14:02:26 +00:00
Nick O'Leary
6cf53c611b merge exec fixes 2017-03-02 13:41:01 +00:00
Nick O'Leary
d8720ee325 Third output from Exec node must be consistent for success/failure conditions 2017-03-02 13:34:01 +00:00
Nick O'Leary
73501f3ad3 Resync with master 2017-03-01 17:45:09 +00:00
Nick O'Leary
54ee655472 Log error stack traces if verbose flag is set 2017-03-01 17:00:27 +00:00
Nick O'Leary
571b9fb8e0 Merge pull request #1122 from CANDY-LINE/feature/i18n-issue
Fix empty extra node help content issue
2017-03-01 16:38:08 +00:00
Nick O'Leary
cdd6b243ff Merge pull request #1171 from SenseTecnic/tls-certkey-upload
UI to upload certificates and keys for TLS
2017-03-01 16:34:05 +00:00
Nick O'Leary
fca77a868f Allow a node to declare settings that should be exported 2017-03-01 15:01:07 +00:00
Dave Conway-Jones
424e854778 clipboard export text stay highlighted even when button deselected
i.e. if you hit button twice text stays selected.
2017-02-28 22:54:13 +00:00
mblackstock
0979d565bb changes as suggested by @knolleary 2017-02-28 14:03:35 -08:00
Dave Conway-Jones
f5e6ca3e10 ensure export clipboard keeps text selected and formatted 2017-02-28 21:50:09 +00:00
mblackstock
2bde07561f UI to upload certificates and keys for TLS, and send them to node red in configuration properties to store them in credentials file
by default upload buttons will be shown unless a cert or key path is already set
added new settings flag called 'tlsDisableLocalFiles' to disable UI for local paths for cloud hosted NR
2017-02-28 12:21:34 -08:00
Nick O'Leary
16c92cc739 Merge pull request #1156 from LinusU/patch-1
Use pre-calculated values for connection path
2017-02-28 10:10:12 +00:00
Dave Conway-Jones
8b31a918a4 Fix Pi GPIO debounce
To close #1139
2017-02-27 19:22:02 +00:00
cinhcet
ee0bd49918 exec node returns 0 on the third output if command ended without error. (#1160)
* exec node returns 0 on the third output if command ended without error.
Otherwise, the status of the node is updated and the error code is send through the third output.

* info text updated and the second output returns only something if stderr is not empty

* proper stderror handling

* proper handling of stderr
2017-02-22 22:22:06 +00:00
Dave Conway-Jones
a625eeeac8 move csv fixes to master
to fix #1142 in master
2017-02-22 20:19:44 +00:00
Dave Conway-Jones
bfcd795687 Fix wrong number of double quotes in CSV parsing
to close #1162
2017-02-20 22:44:37 +00:00
Nick O'Leary
e2a9be9cec Defer resizing tray components until they have finished building 2017-02-16 21:41:20 +00:00
Linus Unnebäck
37dd075309 Use pre-calculated values for connection path 2017-02-16 18:05:59 +01:00
Nick O'Leary
89769fb0e5 Merge pull request #1155 from LinusU/patch-1
Use textContent to avoid manual escaping
2017-02-16 15:37:21 +00:00
Linus Unnebäck
b24fac3dd8 Use textContent to avoid manual escaping 2017-02-16 16:28:00 +01:00
Nick O'Leary
4794fe495c Add events to test helper 2017-02-15 23:15:24 +00:00
Nick O'Leary
869fdbcc6a Remove event passing for icons/examples from the api layer 2017-02-15 23:07:50 +00:00
Dave Conway-Jones
702e6d3b51 slight filed size adjust for mqtt broker port field - allow 5 digits 2017-02-14 20:59:52 +00:00
Nick O'Leary
2913e13a30 Misconfigured WebSocket nodes should not register msg handlers 2017-02-13 21:39:31 +00:00
Nick O'Leary
5f1e37b7fa Leave a node to nls its own port labels 2017-02-10 22:10:53 +00:00
Nick O'Leary
ec0209b175 Allow a node to override default labels 2017-02-09 23:24:16 +00:00
Nick O'Leary
a17dcbde0f Remove console log from Switch node 2017-02-08 20:43:26 +00:00
Nick O'Leary
fbd159a23a Add placeholder text on label inputs and clear buttons 2017-02-08 10:48:26 +00:00
Nick O'Leary
599a6bf050 Add port labels to Subflow nodes 2017-02-08 10:48:25 +00:00
Nick O'Leary
185b16a858 Keep port label form in sync with output reordering 2017-02-08 10:48:25 +00:00
Nick O'Leary
e7e3ed4923 Basic node label editor 2017-02-08 10:48:25 +00:00
Nick O'Leary
47df5476ba Add RED.stack as a common ui component 2017-02-08 10:48:25 +00:00
Nick O'Leary
d7c516ab00 Port label editor starting point 2017-02-08 10:48:24 +00:00
Dave Conway-Jones
50838970ec let css node handle ip addresses without trying to parse
and only warn once if no template (and then send object anyway)
to close #1142
2017-02-07 21:14:16 +00:00
Dave Conway-Jones
1d15ee7034 let Hypriot on Pi detect gpio correctly
clean up duplicate labels
2017-02-07 21:14:16 +00:00
Dave Conway-Jones
7029541b4f Let watch node recurse into subdirectories
to close #1140
2017-02-07 21:14:16 +00:00
Dave Conway-Jones
ada8e447cc exec node can be killed on demand 2017-02-07 21:14:16 +00:00
Dave Conway-Jones
1841fc18fa let trigger node set repeated outputs 2017-02-07 21:14:16 +00:00
Dave Conway-Jones
94ee465682 clone message before send in stay connected mode
to Fix #1137
2017-02-02 09:57:04 +00:00
Nick O'Leary
3e021b3a75 Fix loader test to expect line numbers in load errors 2017-01-30 09:58:43 +00:00
Nick O'Leary
0643f149b7 Extract line number if available from node load errors 2017-01-30 09:37:08 +00:00
Nick O'Leary
939768eec0 Cache auth details to save needlessly recalculating hashes 2017-01-28 14:44:47 +00:00
Nick O'Leary
f2235dacdc Shuffle promises for creating default package.json 2017-01-28 14:21:22 +00:00
Nick O'Leary
50017c28da Allow port labels be i18n identifiers 2017-01-27 22:36:00 +00:00
Nick O'Leary
85b2a03a42 Create a package.json file in userDir if one doesn't exist 2017-01-27 22:35:17 +00:00
Nick O'Leary
829087550d Add inputLabels and outputLabels to node defn + Update Change node 2017-01-27 18:11:25 +00:00
Nick O'Leary
dd6f71fe85 Resize port labels based on content 2017-01-27 16:33:11 +00:00
Nick O'Leary
92a928680c Initial port label behaviour 2017-01-26 15:38:25 +00:00
Nick O'Leary
d008b1970c Add option to parse Template result as JSON before sending 2017-01-25 17:12:53 +00:00
Nick O'Leary
4affbb8c6b Numeric validator that accepts blank should accept undefined 2017-01-25 16:11:56 +00:00
Nick O'Leary
ddb2ea4b5f autoInstallModules option must honour version/pending_version 2017-01-25 11:07:02 +00:00
Nick O'Leary
a69683183f Refuse to update a non-local node module 2017-01-24 22:50:40 +00:00
Nick O'Leary
8d34f87667 Add websocketVerifyClient option to enable custom websocket auth
Fixes #1127
2017-01-24 21:37:08 +00:00
Nick O'Leary
128c4fe222 Add visual cue as to whether the workspace is focused 2017-01-24 16:14:03 +00:00
Nick O'Leary
b10141d71f Allow statusCode/headers to be set directly within HTTP Response node 2017-01-24 14:56:48 +00:00
Nick O'Leary
68e0b35364 Allow RED.validators.number to allow blank values as valid 2017-01-24 14:28:15 +00:00
Nick O'Leary
1324f5e59c Update CHANGELOG for 0.16.2 2017-01-23 15:57:37 +00:00
Nick O'Leary
7759aacb35 Ensure custom mustache context parent set in Template node
fixes #1126
2017-01-23 15:34:34 +00:00
Nick O'Leary
fd6f7cd881 Display debug node name in debug panel if its known 2017-01-23 13:57:06 +00:00
Nick O'Leary
3fdeb38bb7 Ensure auth-tokens are removed when no user is specified in settings 2017-01-21 23:49:20 +00:00
Nick O'Leary
e27f5d0460 Add node module update api and expose in palette editor 2017-01-21 23:46:44 +00:00
Nick O'Leary
0720128bd4 Support dropping json files into the editor 2017-01-19 15:34:14 +00:00
Nick O'Leary
540472a093 Ensure all a tags have blank target in info sidebar 2017-01-19 13:52:38 +00:00
Nick O'Leary
daca78b6cd Ensure links do not span tabs in the editor 2017-01-19 13:24:54 +00:00
Dave Conway-Jones
4195840b2c make links in added info open in blank page rather than current window 2017-01-19 11:00:22 +00:00
Daisuke Baba
57c529758e Add an edge case test 2017-01-19 17:19:41 +09:00
Daisuke Baba
5ba9a0eb3f Fix empty extra node help content issue 2017-01-19 16:55:57 +09:00
Nick O'Leary
b8888a5d46 Add RED.utils.getNodeLabel utility function 2017-01-18 15:52:09 +00:00
Nick O'Leary
0857f979ff Update ui_spec for icon module path 2017-01-18 13:14:12 +00:00
Nick O'Leary
11f4ae019c Include module name in requests for node icons 2017-01-18 13:06:22 +00:00
Nick O'Leary
0ffeb0c5af Avoid creating multiple reconnect timers in websocket node 2017-01-17 20:48:05 +00:00
Nick O'Leary
d6f6b41145 Fix inner reference in install fail message catalog entry
Fixes #1120
2017-01-17 09:54:17 +00:00
Nick O'Leary
64daaeb310 Add file upload support to HTTP In node 2017-01-16 22:39:30 +00:00
Nick O'Leary
0646b0060e Display buffer data properly for truncated buffers under Object property 2017-01-16 17:43:39 +00:00
Nick O'Leary
c794ca85fd Update changelog for 0.16.1 2017-01-16 10:30:36 +00:00
Nick O'Leary
5b4019dd3d Add colour swatches to debug when hex colour matched 2017-01-16 10:29:00 +00:00
Nick O'Leary
a03ccd7b59 Nodes with hasUsers set to false should not appear unused 2017-01-15 13:37:21 +00:00
Nick O'Leary
4b64aad5ce Change hard error to verbose warning if using old node.js level 2017-01-14 23:57:39 +00:00
Nick O'Leary
d146ff8794 Update debug_spec test for Error messages 2017-01-14 21:47:18 +00:00
Nick O'Leary
5349bf7628 Don't filter debug properties starting with _
Fixes #1117
2017-01-14 21:34:09 +00:00
Nick O'Leary
a79e4d1bb3 Node logged errors not displayed properly in debug pane
Fixes #1116
2017-01-14 21:33:11 +00:00
Nick O'Leary
f462435dc2 Do not look for existing nodes when checking for wires on paste
Fixes #1114
2017-01-13 14:16:12 +00:00
Nick O'Leary
48ad614441 -v option not enabling verbose mode properly 2017-01-13 00:01:19 +00:00
Nick O'Leary
f699516fdb Add node.js version check on startup 2017-01-12 10:40:04 +00:00
Nick O'Leary
ca5cbb640a Bump version 0.16 2017-01-11 20:44:53 +00:00
Nick O'Leary
0a96259ddf Update copyright header for JS Foundation 2017-01-11 15:24:33 +00:00
Nick O'Leary
d99b9c04e4 Update changelog 2017-01-11 14:34:59 +00:00
Nick O'Leary
64d261e053 Add deploy action 2017-01-11 14:33:40 +00:00
Nick O'Leary
eb027d98aa Add column headings to keymap table 2017-01-11 14:15:29 +00:00
Nick O'Leary
a95727b654 Scope input/export actions to be global 2017-01-11 14:15:14 +00:00
Nick O'Leary
4e636d7eec Fix arg passing lint error 2017-01-11 12:18:52 +00:00
Nick O'Leary
3cd53f617a Include unassigned keys to shortcut dialog 2017-01-11 11:41:25 +00:00
Nick O'Leary
b1684e82d8 Dynamically generate keyboard shortcut help dialog 2017-01-11 11:35:48 +00:00
Dave Conway-Jones
a55027b838 let copy of settings file occur on a clean install. 2017-01-11 10:12:29 +00:00
Nick O'Leary
28678acf74 Add debug logging around flow revision ids 2017-01-10 14:20:51 +00:00
Nick O'Leary
ce6594c8cc Do not tie debug src loading to needsPermission
Fixes #1111
2017-01-10 09:43:46 +00:00
Nick O'Leary
75855d5450 Initialise nodeApp regardless of httpAdmin setting
Closes #1096 #1095
2017-01-09 22:22:49 +00:00
Nick O'Leary
f248699a30 Display info tips slightly longer 2017-01-09 22:09:06 +00:00
Nick O'Leary
29594726ca Speed up reveal of search dialogs 2017-01-09 22:08:54 +00:00
Nick O'Leary
0a41b07297 Reorder Debug/Inject nodes in quick-add dialog 2017-01-09 16:41:16 +00:00
Nick O'Leary
e45cb7fac1 Ensure flows exist before delegating status/error events
Fixes #1069
2017-01-09 16:39:41 +00:00
Nick O'Leary
489dbfc72a Update package dependencies 2017-01-09 15:01:33 +00:00
Nick O'Leary
a89ae7d77a Update MQTT to latest 2.2.1 2017-01-09 14:35:45 +00:00
Nick O'Leary
a1eeff4034 Node status not being refreshed properly in the editor 2017-01-09 14:18:59 +00:00
Nick O'Leary
0e1013a570 Add install/remove dialog to increase friction
Closes #1109
2017-01-09 13:41:20 +00:00
Nick O'Leary
4562b06a60 Try to prevent auto-fill of password fields in node edit tray
Fixes #1081
2017-01-08 23:14:14 +00:00
zuhito
3c96218338 Add Japanese translation file(editor.json) (#1084) 2017-01-08 23:02:07 +00:00
Nick O'Leary
f0a4ea099c Fix whitespace in localfilesystem 2017-01-08 23:01:28 +00:00
btsimonh
c8d6693fba fix bug where savesettings did not honor local settings variables (#1073)
* fix bug where savesettings did not honor local settings variables

* don't create lib/flows on read;  It's already created in localfilesystem.init and in saveLibraryEntry -
so removed call to promiseDir, and added a return of [] if accessing a folder which did not exist.
This is important because else when settings.readOnly is true, it still creates folders.

* Fix a CI failure where path passed to getLibraryEntry is empty;
treat this case as meaning it was wanting a folder, and return empty if the folder dioes not exist

* Add a test for getLibraryEntry( type, '/' ) as called by node-red

* change newsettings to camelCase newSettings
2017-01-08 23:00:27 +00:00
Nick O'Leary
81bbdfe413 Tidy up unused/duplicate editor messages
Closes #922
2017-01-08 22:54:46 +00:00
Nick O'Leary
0e362943bf Add option to colourise debug console output
Closes #1103
2017-01-08 22:38:40 +00:00
Nick O'Leary
1e37fed90b Report node catalogue load errors
Closes #1009
2017-01-08 20:51:31 +00:00
Nick O'Leary
aafcfef387 Add property validation to nodes using typedInput 2017-01-06 23:18:50 +00:00
Nick O'Leary
4b83d8160f Add common validator for typedInput fields
Closes #1104
2017-01-06 22:20:09 +00:00
Nick O'Leary
73a41707e5 Property expressions must not be blank 2017-01-06 21:58:17 +00:00
Nick O'Leary
c989c533e8 Properly report module remove errors in palette editor
Fixes #1043
2017-01-06 16:53:54 +00:00
Nick O'Leary
707dc8c65c Update debug node console logging indicator icon
Closes #1094
2017-01-06 14:43:51 +00:00
Nick O'Leary
4c6157a06e Tidy up merge commit of validatePropertyExpression 2017-01-06 14:32:37 +00:00
Nick O'Leary
f973396821 Merge pull request #1102 from node-red/0.16
0.16
2017-01-06 14:30:52 +00:00
Nick O'Leary
e73216d4c1 Merge branch 'master' into 0.16 2017-01-06 14:30:13 +00:00
Dave Conway-Jones
e6de26736b add port if wires array > number of ports declared. 2017-01-06 14:06:30 +00:00
Nick O'Leary
d131addd63 Allow tips to be enabled/disabled via menu option 2017-01-06 13:33:23 +00:00
Nick O'Leary
0c7705beff Allow quoted property expressions
Fixes #1101
2017-01-06 11:23:53 +00:00
Dave Conway-Jones
08b11addec Let exec node (spawn) handle commands with spaces in path 2017-01-06 09:55:52 +00:00
Nick O'Leary
555f96cfaf Info-tips update 2017-01-05 23:33:19 +00:00
Nick O'Leary
59ffacb3df Fix merge conflicts 2017-01-05 10:07:23 +00:00
Nick O'Leary
83acb66f00 NLS the diff dialog 2017-01-04 22:02:35 +00:00
Nick O'Leary
1f9ae45875 Fix diff node table layout for Safari 2017-01-04 20:57:10 +00:00
Nick O'Leary
ffa628be2d Index all node properties for node search 2017-01-04 16:46:36 +00:00
Nick O'Leary
8916f6f829 Update CHANGELOG/version for 0.15.3 2017-01-04 15:11:53 +00:00
Nick O'Leary
215c8fd261 NLS type search 2017-01-01 22:14:33 +00:00
Nick O'Leary
061cc908a7 Hide common entries when filtering typeSearch 2017-01-01 21:59:09 +00:00
Nick O'Leary
18a519f9ed Remove node 0.10 from travis config 2017-01-01 11:41:03 +00:00
Nick O'Leary
7970c9dbe5 Merge changes by reimporting changed node config 2017-01-01 00:20:12 +00:00
Nick O'Leary
5ca0c066e2 Better handling of moved nodes 2017-01-01 00:20:12 +00:00
Nick O'Leary
563728c7b8 Some more merging code 2017-01-01 00:20:12 +00:00
Nick O'Leary
31a72b6562 Three-way-diff 2017-01-01 00:20:12 +00:00
Nick O'Leary
d3dfbc3034 Add proper three-way diff view 2017-01-01 00:20:11 +00:00
Josh
f143a6ba08 update welcome message to use logger so it can be turned off/on if required (#1083) 2016-12-23 11:31:23 +00:00
Dave Conway-Jones
28a65923b6 bump various package versions
(not touching mqtt and other major version)
2016-12-22 13:36:06 +00:00
Dave Conway-Jones
4ca3df77b3 Add ⇶ to debug node to indicate debugging also to console.log 2016-12-22 13:27:27 +00:00
Dave Conway-Jones
4cbe264869 Change file node to use node 4 syntax (drops support for 0.8) 2016-12-22 13:17:08 +00:00
Nick O'Leary
b6b65b6bf7 Update debug node test for circular references 2016-12-20 23:21:25 +00:00
Nick O'Leary
e7cc42a927 Use json-stringify-safe to detect circular references in debug msgs 2016-12-20 23:16:11 +00:00
Nick O'Leary
bba3ca8cc0 Avoid misinterpreting valid objects as encoded arrays in debug 2016-12-20 22:46:56 +00:00
Dave Conway-Jones
8423e2d245 add info for httprequest responseUrl property 2016-12-16 22:03:00 +00:00
Dave Conway-Jones
fc263718a1 Add res.responseUrl to httprequest node response 2016-12-16 21:54:24 +00:00
Nick O'Leary
c3a99cf5a4 Update CONTRIBUTING guide 2016-12-09 13:35:29 +00:00
Dave Conway-Jones
f6820ec615 Bump a load of packages (for 0.16 branch only)
Ready to drop node 0.10 - update ws, bcrypt, drop serial port node
2016-12-07 23:43:41 +00:00
Nick O'Leary
226ad3fe22 Add missing diff file 2016-12-07 13:51:20 +00:00
Nick O'Leary
a9b17e930c Add diff markers to tabs in diff-view 2016-12-07 13:48:30 +00:00
Nick O'Leary
932ea7ba8f Add flow diff view 2016-12-06 22:37:21 +00:00
Nick O'Leary
c720d78c39 Ensure runtime event notification gets cleared on restart 2016-12-05 14:39:34 +00:00
Nick O'Leary
8d21e441a0 Add notification when runtime stopped due to missing types
Part of #832
2016-12-05 13:24:24 +00:00
Nick O'Leary
16ecb1a9cb Overhaul keyboard handling and introduce editor actions 2016-12-04 22:59:43 +00:00
Nick O'Leary
f68acca427 Fix dynamically loading multiple node-sets from palette editor 2016-12-01 15:27:29 +00:00
Dave Conway-Jones
671d7e2beb debug - format if time if correct length/range 2016-11-28 17:28:49 +00:00
Nick O'Leary
52fc497412 Properly escape html strings passed to debug 2016-11-27 21:51:34 +00:00
Nathanaël Lécaudé
2084ad318f Tcpgetfix: Another small check (#1070)
* TCPget: Add another check for clients[connection_id]
2016-11-26 21:16:19 +00:00
Nathanaël Lécaudé
b530c1a43d TCPGet: Ensure done() is called only once (#1068)
* Add additional safety checks to avoid acting on non-existent objects

* TCPGet: yet more checks

* TCPGet: seperate connected properties

* TCPGet: properly handle node.done()
2016-11-25 18:14:51 +00:00
Nick O'Leary
f2797a4153 Fix package.json conflict 2016-11-24 20:52:48 +00:00
Nick O'Leary
659c326f89 Add jsonata snippets 2016-11-23 23:16:17 +00:00
Nick O'Leary
534b07d120 Include jsonata from dependency on build and improve func highlight 2016-11-23 23:15:30 +00:00
Nick O'Leary
de64fc8b8d Update rather than hide install button after success install 2016-11-23 10:58:38 +00:00
Nick O'Leary
1e234fcb73 Add editableList api doc comments 2016-11-23 10:58:19 +00:00
Nick O'Leary
fa9a7e725b Sort quick-add types and add most-recent used type section 2016-11-22 22:57:05 +00:00
Nick O'Leary
95b2675f03 Support query and search paths in url when opening debug sub window 2016-11-22 13:14:52 +00:00
Nick O'Leary
564902b886 Allow $ and _ at start of property identifiers
Fixes #1063
2016-11-21 21:36:18 +00:00
Nathanaël Lécaudé
071a04595a TCPGet: Separated the node.connected property for each instance (#1062)
* Add additional safety checks to avoid acting on non-existent objects

* TCPGet: yet more checks

* TCPGet: seperate connected properties
2016-11-19 16:25:54 +00:00
Nick O'Leary
eaa4b76ede Update jsonata version 2016-11-18 16:38:48 +00:00
Nicholas Humfrey
74a1713e99 Corrected 'overide' typo in XML node help (#1061)
Thanks @njh
2016-11-18 11:41:48 +00:00
Nathanaël Lécaudé
5f5aa0b2f7 TCPGet: Last property check (hopefully) (#1059)
* Add additional safety checks to avoid acting on non-existent objects

* TCPGet: yet more checks
2016-11-18 11:25:06 +00:00
Nathanaël Lécaudé
eef59fd40e Add additional safety checks to avoid acting on non-existent objects (#1057) 2016-11-17 21:04:38 +00:00
Dave Conway-Jones
361ff315e9 add --title for process name to command line options 2016-11-17 13:57:33 +00:00
Dave Conway-Jones
eeea8e530e add indicator for fire once on inject node 2016-11-17 13:56:37 +00:00
Dave Conway-Jones
8d5286703f reimplement $(env var) replace to share common code.
and add test to utils
2016-11-17 13:56:17 +00:00
Dave Conway-Jones
74f2180fa4 Fix error message for missing node html file, and add test.
To close #1053
2016-11-16 22:46:01 +00:00
Dave Conway-Jones
d042169f2e Let credentials also use $(...) substitutions from ENV
to close #1051
(and add to test)
2016-11-16 21:47:13 +00:00
Nick O'Leary
1fd87bf664 Improve debug message meta data contrast and legibility 2016-11-16 15:05:04 +00:00
Nick O'Leary
eeaff6b553 Add insert-function button to expression editor 2016-11-16 14:54:51 +00:00
Nick O'Leary
6efd048fd6 Rename insecureRedirect to requireHttps 2016-11-16 14:24:27 +00:00
Paul Slater
6e9e694f66 Add setting to cause insecure redirect (#1054)
* add support for editor insecure redirect setting

set insecureRedirect: true to cause the editor app to redirect insecure connections

* document insecureRedirect

* use req.originalUrl instead of req.url

url has the path removed, whereas originalUrl preserves the path - ie /red
2016-11-16 14:17:47 +00:00
telogis-nodered
44a0f1b505 Palette editor fixes (#1033)
* ensure remove button is only enabled for local modules when refreshing palette editor

* ensure local field is propagated to the nodes when a new module is added to the registry
2016-11-16 14:12:31 +00:00
Monkey Do
9790211891 Close comms on stopServer in test helper (#1020)
* Close comms on stopServer in test helper

Using this file in another project to test nodes, when running tests with gulp and karma the process never ends as comms are still open.
This resolves the problem.

* Moved test helper server on close to stopServer method
2016-11-16 14:09:04 +00:00
Adam Hořčica
be18cc9f2d Add support for flow and global context in Template node (#1048)
* Enable tests for flow and global context

* Add support for flow and global context in Template node

* Handle missing node context
2016-11-16 14:08:14 +00:00
Nick O'Leary
8caee09ea4 Preserve newlines in jsonata expression via tabs 2016-11-16 13:44:45 +00:00
Nick O'Leary
26f5305593 Add jsonata function help 2016-11-15 23:22:25 +00:00
Nick O'Leary
d33029027f Add expression editor for jsonata 2016-11-15 00:19:04 +00:00
Dave Conway-Jones
339aaaec57 Tcpgetfix (#1050)
* TCPget: Store incoming messages alongside the client object to keep reference
2016-11-14 20:20:27 +00:00
Dave Conway-Jones
db2425c473 Seperated info messages to their own file
auto detect size still needs work
2016-11-14 19:10:02 +00:00
Nathanaël Lécaudé
18731f6055 TCPget: Store incoming messages alongside the client object to keep reference 2016-11-14 13:30:43 -05:00
Nathanaël Lécaudé
34f1f7a31d Merge remote-tracking branch 'upstream/master' into tcpgetfix 2016-11-14 08:09:44 -05:00
Nathanaël Lécaudé
7ef153756b TCPget can now handle concurrent sessions (#1042)
* First release of multi connection tcpget

* Works when connection is left open

* Change scope of clients object

* Fix comparison to "" in tcpin

* Add security checks

* Better scope handling
2016-11-11 09:01:22 +00:00
Nick O'Leary
bf90509526 Add jsonata support to Change/Switch nodes 2016-11-10 23:58:34 +00:00
Nathanaël Lécaudé
d853eca489 Better scope handling 2016-11-10 17:35:44 -05:00
Nathanaël Lécaudé
869ae01da9 Add security checks 2016-11-10 16:45:01 -05:00
Dave Conway-Jones
d63996eea1 slight tidy of YAML PR (remove excess console.log in test)
and improve XML test coverage slightly
2016-11-10 21:29:07 +00:00
Nathanaël Lécaudé
9bbc8eda9d Added YAML parser node (#1034)
Thanks @natcl -
(sorry pressed closed by mistake !)
* Added YAML parser node

* Added YAML error strings in messages.json

* Change location of YAML library import

* Remove copyright

* Remove copyright

* Change order of yaml in Template node

* Add YAML test

* Add working test
2016-11-10 21:22:05 +00:00
Dave Conway-Jones
9cc1b03c56 small change to udp httpadmin
as it refers to both in and pout
2016-11-10 20:19:55 +00:00
Dave Conway-Jones
b1ab26e3ad update Font Awesome to 4.7.0 2016-11-10 20:15:06 +00:00
Nathanaël Lécaudé
96820418b5 Fix comparison to "" in tcpin 2016-11-10 11:17:27 -05:00
Nathanaël Lécaudé
385d9f16e9 Change scope of clients object 2016-11-09 22:33:55 -05:00
Nathanaël Lécaudé
d56fce37dd Works when connection is left open 2016-11-09 13:25:19 -05:00
Nathanaël Lécaudé
aef2c9e5cf First release of multi connection tcpget 2016-11-09 10:15:23 -05:00
Nick O'Leary
89a05c580f Handle drag whilst quick-add dialog open 2016-11-09 13:25:55 +00:00
Nick O'Leary
b85e562980 Combine quick-add and quick-join actions 2016-11-09 13:17:26 +00:00
Nick O'Leary
a0e6628757 Tweak search box styling 2016-11-08 21:18:34 +00:00
Nick O'Leary
60a41524f0 editableList delete button click event not cancelled 2016-11-08 17:01:21 +00:00
Nick O'Leary
6042395b81 Allow a node to reorder its outputs and maintain links
Fixes #1031
2016-11-08 17:00:47 +00:00
Nick O'Leary
8a5db8ce4b Handle explicitly set input widths on typedInput 2016-11-08 13:36:32 +00:00
Nick O'Leary
196d6e79e2 Don't pin change node input widths 2016-11-08 13:29:01 +00:00
Nick O'Leary
91f16215e5 Make typedInput keyboard navigable 2016-11-08 13:18:28 +00:00
Nick O'Leary
9c675a7847 Focus tray body when edit dialog opened 2016-11-08 09:58:20 +00:00
Nick O'Leary
f9e09e87d6 Hit enter to edit first node in selection 2016-11-07 21:51:03 +00:00
Nick O'Leary
73574d6293 Add quick-add node mode with cmd/ctrl-click 2016-11-07 21:25:09 +00:00
Ben Hardill
0a5a42b32a Fix node.error() not printing when passed false (#1037)
This should fix #1036
2016-11-07 18:28:35 +00:00
Nick O'Leary
de225205bd Fix safari/firefox detection of Meta key up 2016-11-06 00:24:01 +00:00
Nick O'Leary
8a47d36480 Add cmd/ctrl-click to quick add wires 2016-11-06 00:14:07 +00:00
Dave Conway-Jones
d5f3ba8d8a remove unnecessary require from JSON node 2016-11-04 19:55:02 +00:00
Nick O'Leary
782a06ce84 Tweak node info table colours 2016-11-04 14:30:41 +00:00
Nick O'Leary
5cdafc50fb Add node delete button to edit dialog 2016-11-04 14:29:04 +00:00
Nick O'Leary
0ca3cdb9ae tab-info node properties use RED.utils.createObjectElement 2016-11-03 14:34:38 +00:00
Nick O'Leary
a1d6cbd5fd Only expand strings that contain tabs/newlines 2016-11-03 14:34:38 +00:00
Nick O'Leary
6c36778cac Move debug message utils into core 2016-11-03 14:34:38 +00:00
Nick O'Leary
1c3a97a71a Make red.min.js a reusable library 2016-11-03 14:34:37 +00:00
Nick O'Leary
3489fe0cf4 Better toggling between raw/string views of buffers 2016-11-03 14:34:37 +00:00
Nick O'Leary
74b6d9dff9 Provide string view of buffers in debug messages 2016-11-03 14:34:37 +00:00
Nick O'Leary
06ee9aa05c Make strings expandable in debug 2016-11-03 14:34:37 +00:00
Nick O'Leary
f0f40a8606 Restore object keys values in debug sidebar 2016-11-03 14:34:37 +00:00
Nick O'Leary
1f2c9879bd Handle big arrays/buffers better in debug sidebar 2016-11-03 14:34:37 +00:00
Nick O'Leary
d1eb82bdf6 Show newlines/tabs in debug output 2016-11-03 14:34:37 +00:00
Nick O'Leary
8167f623e3 Update debug_spec for format changes 2016-11-03 14:34:37 +00:00
Nick O'Leary
9555e296a2 Close debug window when main window unloads 2016-11-03 14:34:37 +00:00
Nick O'Leary
f460283fa1 Full event passing between debug window and main window 2016-11-03 14:34:37 +00:00
Nick O'Leary
79da8e5a37 Move all common debug list code to its own library 2016-11-03 14:34:37 +00:00
Nick O'Leary
a35ce22218 Make debug message node id clickable 2016-11-03 14:34:36 +00:00
Nick O'Leary
1c905da8c2 Handle long strings in debug 2016-11-03 14:34:36 +00:00
Nick O'Leary
2b558768f1 Add debug filter box 2016-11-03 14:34:36 +00:00
Nick O'Leary
7607c4c882 Make inbuilt debug messages navigable 2016-11-03 14:34:36 +00:00
Nick O'Leary
c9f4813ce1 Fix debug path 2016-11-03 14:34:36 +00:00
Nick O'Leary
0428e27039 Improved type styling 2016-11-03 14:34:36 +00:00
Nick O'Leary
e30da2168d Make Debug object explorable 2016-11-03 14:34:36 +00:00
Nick O'Leary
0cd20768f4 Style the debug window to match the sidebar 2016-11-03 14:34:36 +00:00
Nick O'Leary
ab31f34862 Initial debug pop-out window 2016-11-03 14:34:36 +00:00
Dave Conway-Jones
9a4ff5cb43 fix test for CSV array input 2016-11-03 08:56:38 +00:00
Dave Conway-Jones
f66c91e18e different test for Pi (rather than use serial port name) 2016-11-03 08:56:18 +00:00
Dave Conway-Jones
a235745be7 Fix missing 0 handling for css node with array input 2016-11-02 15:49:51 +00:00
Nick O'Leary
9516da01e3 0.15.2 changelog 2016-10-28 08:48:10 +01:00
Nick O'Leary
7657bd2375 Bump 0.15.2 2016-10-28 08:43:21 +01:00
Nick O'Leary
0adcea9e7c Revert bidi changes to nodes and hide menu option until fixed
Fixes #1024
2016-10-28 08:37:33 +01:00
Dave Conway-Jones
aa8ad60083 Let xml node set options both ways
to close #1022  to close #975
Thanks @martin-doyle and @nikhildx
2016-10-26 22:06:35 +01:00
Dave Conway-Jones
5d98a86a6b bump serialport to use version 4
(precompiled versions more available)
2016-10-25 21:42:27 +01:00
Dave Conway-Jones
4418fdaed6 gpio node handle multiple bits of data returned in one go 2016-10-25 21:42:27 +01:00
Nick O'Leary
c58c45c917 HTTP In should pass application/octet-stream as buffer not string
Fixes #1023
2016-10-25 21:19:49 +01:00
Dave Conway-Jones
45eba5cabd tidy up udp node - repeat setting of var 2016-10-25 20:40:11 +01:00
Nick O'Leary
3ab0d0d865 Handle missing httpNodeRoot setting properly 2016-10-21 13:50:47 +01:00
Nick O'Leary
a6803081ab Config sidebar not handling node definition error properly 2016-10-21 13:47:54 +01:00
Nick O'Leary
8debed805b Add minimum show time to deploy spinner to avoid flicker 2016-10-21 12:59:55 +01:00
Nick O'Leary
fc9835512d Add work-in-progress update button to palette-editor 2016-10-21 10:29:26 +01:00
Nick O'Leary
5f0cab8cc2 Add log.removeHandler function 2016-10-20 23:31:40 +01:00
Nick O'Leary
bd391963bc Add Crtl/Shift/p shortcut for manage palette 2016-10-20 14:01:37 +01:00
Nick O'Leary
97fa28fb10 Add spinner to deploy button 2016-10-20 13:11:12 +01:00
Nick O'Leary
67d5b39c96 Status messages from nodes in subflows not delegated properly
Fixes #1016
2016-10-19 21:06:45 +01:00
Dave Conway-Jones
dbceef2581 fix spelling in join node info
Manual fix for #1014
Thanks @rogovski
2016-10-17 21:40:12 +01:00
Nick O'Leary
5b22ccfca6 Speed up tab scrolling 2016-10-15 20:58:27 +01:00
Nick O'Leary
714c254bab Update delay burst test to be more tolerant of timing
Fixes #1013
2016-10-14 22:35:43 +01:00
Nick O'Leary
90f4db9158 Bump 0.15.1 2016-10-13 19:53:43 +01:00
Nick O'Leary
eed470ddae Update default palette catalogue to use https 2016-10-13 16:22:25 +01:00
Nick O'Leary
49f72881f4 Disable palette editor if npm not found 2016-10-12 22:30:32 +01:00
Nick O'Leary
a76674032d Searching package catalogue should be case-insensitive
Fixes #1010
2016-10-12 20:08:08 +01:00
Nick O'Leary
ec392a7f9a contenteditable fields not handled in config nodes
Fixes #1011
2016-10-12 19:56:12 +01:00
Dave Conway-Jones
8a2ae6c480 Change html link refs from _new to _blank to be standards compliant 2016-10-12 17:53:27 +01:00
Nick O'Leary
b3796a8e24 Fix unit tests for /flows 2016-10-12 10:33:51 +01:00
Nick O'Leary
b9144ff987 Bump version 0.15.0 2016-10-12 10:27:08 +01:00
Nick O'Leary
5344949c71 Tidy up /flows api responses 2016-10-12 10:24:10 +01:00
Nick O'Leary
05cbba9a35 Exporting current flow not formatting tab node correctly 2016-10-11 21:34:52 +01:00
Nick O'Leary
325c6135cf Defeat the exec node test dragons 2016-10-11 20:31:42 +01:00
Dave Conway-Jones
fdea19a45b leave Pi GPIO pins in a sensible state on error 2016-10-11 15:37:34 +01:00
Nick O'Leary
fad63c0c18 Fix tab_config revealing unused config nodes 2016-10-11 15:06:34 +01:00
Nick O'Leary
f002560616 Exec node spawn mode should clone messages it reuses 2016-10-11 14:49:48 +01:00
Nick O'Leary
8e7d52e645 Avoid reencyrpting credentials if they haven't changed 2016-10-11 14:27:35 +01:00
Nick O'Leary
d119594cbf Tidy up exec node clean-up to remove failure-causing timing window 2016-10-11 13:25:19 +01:00
Nick O'Leary
84f7da6e93 Fix null checking in exec node test 2016-10-11 11:16:10 +01:00
Nick O'Leary
22e1bafe1b Fix exec test on node 0.10 2016-10-11 10:53:50 +01:00
Nick O'Leary
3f8e42e510 update changelog 2016-10-11 10:28:16 +01:00
Dave Conway-Jones
9704fb04d9 inject node label - show topic for timestamp mode if short 2016-10-11 09:27:02 +01:00
Nick O'Leary
dcfaf1e2b9 Update changelog 2016-10-11 00:17:06 +01:00
Nick O'Leary
42f7dc1947 Fix type checking in unit tests 2016-10-10 13:27:43 +01:00
Nick O'Leary
eb1a597456 Add npm build/test scripts
Closes #946 #660
2016-10-10 11:49:38 +01:00
Dave Conway-Jones
8368815db5 extra change tests for partial and complete match
to close #934
2016-10-10 11:48:52 +01:00
Nick O'Leary
9c6295d0d8 Lighten shade color in editor 2016-10-10 11:42:36 +01:00
Dave Conway-Jones
4d19f881e9 Let change node set type if total match
remove unnecessary 2 step move when not required.
add test for moving sub property up to main property
2016-10-10 11:10:36 +01:00
Dave Conway-Jones
3a8820397b clean up status on close for several core nodes. 2016-10-10 11:08:06 +01:00
Nick O'Leary
85b1c1fe97 Increase default apiMaxLength to 5mb and add to default settings
Closes #1001
2016-10-10 10:14:08 +01:00
Nick O'Leary
a4de9e94dd Update dependency versions 2016-10-10 10:02:41 +01:00
Nick O'Leary
0dd2c7fe24 Change node: reparse JSON set value each time to avoid pass-by-ref 2016-10-09 23:14:52 +01:00
Nick O'Leary
f22c3b549e Merge branch '0.15.0' 2016-10-09 23:00:28 +01:00
Nick O'Leary
3c60b3d2c9 Prevent search box opening when other modals are open 2016-10-09 22:54:47 +01:00
Nick O'Leary
f2d36b84b5 Don't hide install button on already-installed node modules 2016-10-09 22:23:47 +01:00
Nick O'Leary
9af08ef26a Update test helper for new flow api 2016-10-09 22:22:13 +01:00
Nick O'Leary
b4be1184fd Add v2 /flows api and deploy-overwrite protection 2016-10-09 22:02:40 +01:00
Nick O'Leary
c60e0d389c Mark nodes as changed when they are moved 2016-10-09 22:02:40 +01:00
Dave Conway-Jones
d658fe7709 move travis to node 6 and 7 - drop 5 and 0.12
move serialport  to 0.3.0 version
2016-10-06 13:31:59 +01:00
TJKoury
54036a2b4d Added parent containment option for draggable. (#1006)
* added parent containment option for draggable

* taking Nick's suggestion, #main-container it is
2016-10-02 22:45:49 +01:00
Dave Conway-Jones
2da9572a45 Better handle httprequest header capitalisation 2016-10-02 17:44:48 +01:00
Nick O'Leary
306825aa90 Enable es6 parsing in Function editor by default
Fixes #985
2016-09-30 23:51:27 +01:00
Nick O'Leary
c797073c05 Ignore bidi event handling on non-existent and non-Input elements
Closes #999
2016-09-30 23:35:05 +01:00
Nick O'Leary
d9d65d59d1 Fix timing window when scrolling search box results 2016-09-30 23:34:44 +01:00
Nick O'Leary
aad29e4487 Remove list of flows from menu 2016-09-30 23:34:26 +01:00
Nick O'Leary
b00985f99f Replace palette-edit button with menu option 2016-09-30 20:33:27 +01:00
Nick O'Leary
538a16a5fb Allow nodes to be imported with their credentials 2016-09-30 14:15:04 +01:00
Nick O'Leary
300a8d3a89 Click to close search box 2016-09-30 13:27:53 +01:00
Nick O'Leary
e3b7c5fce7 Add 'no matches' message to package search results 2016-09-30 11:19:47 +01:00
Nick O'Leary
2e87ebe800 Fix editableList sizing on safari 2016-09-30 10:46:13 +01:00
Nick O'Leary
7ed9e7cdd4 Update debug sidebar to use RED.view.reveal to show debug nodes 2016-09-29 23:49:58 +01:00
Nick O'Leary
7ff9c2885d Fix scrollable tab buttons changing location hash 2016-09-29 23:46:55 +01:00
Nick O'Leary
18c8bbb0fc Add workspace search option 2016-09-29 23:46:29 +01:00
Nick O'Leary
9a49fb9450 Add escape-to-clear to searchBox and other css fixes 2016-09-29 23:45:25 +01:00
Nick O'Leary
84457bc7b4 Add scrollOnAdd option to editableList 2016-09-29 23:44:49 +01:00
Dave Conway-Jones
15f1e2c85c Add swift markup to editor for open whisk node 2016-09-27 22:04:13 +01:00
Nick O'Leary
15e828e975 Adjust dragging tabs when partially scrolled 2016-09-27 00:05:43 +01:00
Nick O'Leary
e4626ee52b Scrollable tabs 👍 2016-09-26 22:56:28 +01:00
Nick O'Leary
1866c9c7ef Allow linking to individual flow via url hash 2016-09-24 22:57:41 +01:00
Nick O'Leary
a0f91aa814 Avoid duplicating existing subflows on import 2016-09-24 22:20:28 +01:00
Dave Conway-Jones
a89c7b1a70 Add full path tip to file node, And tidy up Pi node tips 2016-09-23 23:37:56 +01:00
Dave Conway-Jones
ded1376957 remove websocket node maxlistener warning 2016-09-23 23:36:58 +01:00
Nick O'Leary
252040f03b Add import-to-new-tab option 2016-09-23 22:02:12 +01:00
Nick O'Leary
d29abc2724 Encrypt credentials by default 2016-09-23 10:38:30 +01:00
Nick O'Leary
44c35d2644 Update test node helper module for storage api changes 2016-09-21 22:22:04 +01:00
Nick O'Leary
f9b972349d Move credential load/save storage functions under get/setFlows 2016-09-21 21:58:50 +01:00
Nick O'Leary
e06cadd761 Pass full runtime object to storage and flow sub-components 2016-09-21 10:22:04 +01:00
Nick O'Leary
ee45d6b48f Fix contenteditable div unfocused css 2016-09-20 10:10:28 +01:00
Nick O'Leary
d915b280d4 Add new options to export-nodes dialog 2016-09-19 13:54:23 +01:00
Nick O'Leary
39d90fe881 Update mqtt-broker node to use fully name-space qualified status messages 2016-09-19 09:36:38 +01:00
wajnberg
b9da1f18b4 Fixing issue 989 (#997)
* Fixing issue 989

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>

* Fixing the getRangeAt problem on Chrome

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>

* Fixing the getRangeAt problem on Chrome

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>
2016-09-18 21:20:50 +01:00
Dave Conway-Jones
69a0934173 Merge pull request #996 from Belphemur/delay-migration
Fix migration of Delay Node
2016-09-17 15:54:27 +01:00
Antoine Aflalo
289de85754 Fix the check for nbRateUnits 2016-09-17 10:38:30 -04:00
Dave Conway-Jones
0ec95041d9 another tiny nudge for code tag 2016-09-17 15:29:54 +01:00
Dave Conway-Jones
fcb6f78d54 give <code> tag slightly more bottom space 2016-09-17 14:06:01 +01:00
Dave Conway-Jones
29e9740668 Let UDP node better share same port instance if required 2016-09-17 14:05:26 +01:00
Antoine Aflalo
ea8c6d5cce Add number of units to the delay node (rate) (#994)
* Add possibility to set the value for the rate unit

Backward compatible, if the new nbRateUnits is not set, default to 1.
This way we can delay messages to 1 msg per X seconds/minutes/hours days
instead of always 1.
Useful when interacting with API that have a uncommon rate limiting like
1req per 2 seconds.

* Fix existing testing for delay

* Add new test for the nbRateUnits

* Fix label for timed and topic for delay node

* Schrink width of Units delay rate

* pluralisation of labels

* Dynamic pluralisation respecting i18n

* Remove debug data left
2016-09-16 14:27:14 +01:00
Alice Ferrazzi
e4c951984a typo fix (#990)
typo fix in mqtt broker help text
2016-09-14 23:13:08 +01:00
Dave Conway-Jones
0071afb205 update registry loader test to normalise path for windows
Thanks shrikes
2016-09-13 22:57:20 +01:00
Nick O'Leary
d3c7ac75be Set switch node rule input widths properly 2016-09-08 21:12:39 +01:00
Nick O'Leary
55d7420abf Remove tabs 2016-09-08 20:49:44 +01:00
wajnberg
489b56456f Completing STT support (#976)
* Completing STT support

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>

* Adressing Nick comments

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>
2016-09-08 20:46:30 +01:00
Nick O'Leary
1f24fcb364 Ensure errors thrown by RED.events handlers don't percolate up 2016-09-05 23:09:33 +01:00
Nick O'Leary
722b31edee Safely ignore subflow instance nodes in palette editor 2016-09-02 20:31:24 +01:00
Dave Conway-Jones
765f0393b0 Add test for change node ,move to sub-property 2016-08-28 12:09:37 +01:00
Dave Conway-Jones
6868ef044b Allow http middleware to skip rawBodyParser 2016-08-28 12:02:34 +01:00
Dave Conway-Jones
5dd0622e40 Let change node move property to sub-property. 2016-08-28 12:02:34 +01:00
Dave Conway-Jones
48bdab1dcf Add info to exec warning about buffered output if using python 2016-08-28 12:02:34 +01:00
Nick O'Leary
aee483e9f1 Stop nodes being added beyond the outer bounds of the workspace 2016-08-26 16:22:06 +01:00
Nick O'Leary
8542b9bf67 Fix splice handling when a subflow input/output node is selected 2016-08-26 13:34:29 +01:00
Nick O'Leary
feaf6f2501 Remove console.log from bidi 2016-08-26 13:27:19 +01:00
Nick O'Leary
d7d30aa972 Default config nodes to global scope unless in a subflow
Closes #972
2016-08-26 13:26:42 +01:00
Nick O'Leary
91c23d1f7d Fix palette-editor handling of subflows 2016-08-26 13:21:33 +01:00
Nick O'Leary
57479edc59 Merge branch 'palette-ui' into 0.15.0 2016-08-26 13:01:03 +01:00
Nick O'Leary
4b462eaae9 Move initInputEvents to prepareInput 2016-08-26 12:50:18 +01:00
Nick O'Leary
c60fb3bc25 Move setting text direction into bidi module 2016-08-26 00:40:01 +01:00
Nick O'Leary
b17c34402d Fix some more tabs/spaces in bidi work 2016-08-26 00:28:22 +01:00
Nick O'Leary
6ad71bd222 Move bidi code under RED.text 2016-08-25 17:09:56 +01:00
wajnberg
ccc08be0ee Bidi support for Text Direction and Structured Text (#961)
* Bidi support for Text Direction and Structured Text

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>

* Adding documentation for functions in bidi.js and format.js

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>

* Removing unused functions from format.js

Signed-off-by: Moshe Wajnberg <wajnberg@il.ibm.com>
2016-08-25 16:47:30 +01:00
telogis-nodered
2a2fc80931 Fix jquery selector, selecting more than one help pane/popover and displaying incorrectly. (#970) 2016-08-25 10:44:23 +01:00
James Thomas
9ebca91775 Fixes removeItem not passing row data to callback. (#965)
Call to .data('data') was happening after the remove() call, which
deletes the retained data. This was passing undefined back to the
callback for removeItem.

I've changed the data retrieval to a temporary variable before the
delete call.
2016-08-21 23:05:53 +01:00
Dave Conway-Jones
456fc23463 update README link to IBM ETS blog page 2016-08-18 13:50:46 +01:00
Nick O'Leary
eb17562f4d NLS the palette editor 2016-08-14 23:08:37 +01:00
Nick O'Leary
b7dbfd5cfc Only reload catalogue when requested 2016-08-13 00:33:41 +01:00
Nick O'Leary
cdc7ab562a Add sort options to palette-editor search 2016-08-12 23:00:28 +01:00
Nick O'Leary
e6b5552cba Add some more error handlers for custom node label functions
Closes #956
2016-08-11 14:49:22 +01:00
Nick O'Leary
eecf92183f Update to new catalogue format 2016-08-10 21:59:31 +01:00
Nick O'Leary
11656382a7 Allow palette-editor to be disabled via editorTheme 2016-08-10 20:15:17 +01:00
Nick O'Leary
e4d788ad0b Add install tab to palette-editor 2016-08-09 10:43:03 +01:00
Nick O'Leary
3017442702 Move common components and add searchBox 2016-08-09 10:41:26 +01:00
Nick O'Leary
ba37db275c Add node filter to palette-editor 2016-08-05 16:39:41 +01:00
Nick O'Leary
521e669879 Enable palette-editor remove buttons 2016-08-05 13:39:14 +01:00
Nick O'Leary
12e302c10a Collapse palette modules when palette-editor closed 2016-08-04 22:28:56 +01:00
Nick O'Leary
7220af3ef0 Move palette editor to left hand side 2016-08-04 16:49:36 +01:00
Dave Conway-Jones
42f4e0fa86 TCP node: pass on latest input msg properties
to close #944
2016-08-04 15:49:38 +01:00
Dave Conway-Jones
022d066fe0 Make sure MQTT broker is really set
To close #951
2016-08-04 10:02:27 +01:00
Dave Conway-Jones
4c9d7cbeed Merge pull request #955 from natcl/master
Fix escapce character catch in TCPGet + support 0x?? sequences
2016-08-02 20:15:31 +01:00
Nathanaël Lécaudé
1541e382e4 Fix escapce character catch in TCPGet + support 0x?? sequences 2016-08-02 12:32:49 -04:00
Dave Conway-Jones
1d9488d24f Merge pull request #954 from natcl/master
Fix split character in TCP Request node
2016-08-02 16:26:37 +01:00
Nathanaël Lécaudé
6cbc1afb9b Fix split character in TCP Request node 2016-08-02 11:09:41 -04:00
Nathanaël Lécaudé
3f86b660ed Add CSS hilighting to the template node (#950)
This can be useful when using the template node to create frontends, see this post:
https://groups.google.com/d/msg/node-red/q4DKaX87Ano/Xa1mLpOdAwAJ

Thanks !
2016-08-01 22:32:02 +01:00
Dave Conway-Jones
4603f2d9ca only update switch Prev value after all rules are run 2016-08-01 12:31:35 +01:00
Nick O'Leary
da818cf420 Add initial palette sidebar 2016-07-29 12:52:00 +01:00
Nick O'Leary
86a2ed652d Update changelog 2016-07-29 10:44:52 +01:00
Nick O'Leary
269761f222 Bump version/changelog 2016-07-29 10:43:53 +01:00
Dave Conway-Jones
53ca3046b3 Add RPi.GPIO lib test for ArchLinux 2016-07-28 18:20:18 +01:00
Nick O'Leary
f484156d8e Tell ace about Function node globals
Closes #927
2016-07-28 17:14:55 +01:00
Nick O'Leary
1da8712a4a Update ace to 1.2.4 2016-07-28 17:14:38 +01:00
Nick O'Leary
dd47eba88c Add proper help text to link nodes 2016-07-28 15:58:00 +01:00
Nick O'Leary
0ade8ff7a2 Add log warning if node module required version cannot be satisfied 2016-07-28 15:43:26 +01:00
Nick O'Leary
6a528b5fdb Allow config nodes to provide a sort function for their select list 2016-07-28 13:27:34 +01:00
Nick O'Leary
7f63ddc9ea Handle importing old mqtt-broker configs that lack properties 2016-07-27 23:05:48 +01:00
Nick O'Leary
d6b326c134 Handle empty credentials file
Closes #937
2016-07-26 22:23:49 +01:00
Nick O'Leary
d944298dd7 Tidy up mqtt nodes - linting and done handling
Closes #935
2016-07-26 21:33:00 +01:00
Nick O'Leary
0136ebd2b4 Fix invalid html in TCP and HTML node edit templates 2016-07-26 16:19:27 +01:00
Nick O'Leary
45f8def1ed Bump version + change log 2016-07-23 22:59:56 +01:00
Nick O'Leary
7c6e8eeefc Cannot clear cookies with http nodes 2016-07-23 22:41:37 +01:00
Dave Conway-Jones
e81e48cde3 Fix html parse node test 2016-07-20 20:58:52 +01:00
Dave Conway-Jones
8eebb6ea2d let HTML parse node allow msg.select set select
to close #943
2016-07-20 20:08:50 +01:00
Nick O'Leary
ad8290ebcb Validate nodes on import after any references have been remapped 2016-07-20 11:30:49 +01:00
Nick O'Leary
15b6f6268b Debug node handles objects without constructor property
Fixes #933
2016-07-15 22:41:35 +01:00
Nick O'Leary
92d5af7446 Ensure 'false' property values are displayed in info panel
Fixes #940
2016-07-15 22:33:17 +01:00
Nick O'Leary
d57425a15e Fix node enable/disable over restart - load configs after settings init 2016-07-15 00:11:28 +01:00
Nick O'Leary
a457c06500 Bump version 2016-07-06 23:22:26 +01:00
Nick O'Leary
906bbae899 Update CHANGELOG 2016-07-06 21:35:06 +01:00
Dave Conway-Jones
e360e57a5b Fix node.status to check hasOwnProperty("text") 2016-07-06 17:22:45 +01:00
Nick O'Leary
c5753a013c Handle DOMException when embedded in an iframe of different origin
Fixes #932
2016-07-06 13:28:51 +01:00
Nick O'Leary
691b083364 Update trigger node ui to use typedInputs 2016-07-05 15:39:00 +01:00
Dave Conway-Jones
b74a35b9d1 add extra test for CSV with odd quotes 2016-07-05 11:51:08 +01:00
Dave Conway-Jones
82269462a4 Fixed better handling of odd quotes in CSV node
(and a better commit message)
2016-07-05 11:31:25 +01:00
Dave Conway-Jones
d7943aab28 better handling of snatched quotes in css parser 2016-07-05 11:03:11 +01:00
Nick O'Leary
446eb8e978 Fix double firing of menu actions 2016-07-05 09:16:27 +01:00
Nick O'Leary
d91a99c833 Clarify the MQTT node sends msg.payload
Closes #929
2016-07-04 11:29:43 +01:00
Nick O'Leary
dc00870461 Fix select box handling in Safari
Fixes #928
2016-07-04 11:22:30 +01:00
Dave Conway-Jones
b8f578862e Add sql mode to ace editor 2016-07-04 09:58:03 +01:00
Jesse Naranjo
dc24c05229 Keyboard shortcuts dialog update (#923)
* Added Ctrl+Z to the Keyboard Shortcuts dialog.

* Added Arrow Keys and Shift + Arrow Keys shortcuts to the Keyboard Shortcuts dialog.

* Added the [Backspace] key to the Keyboard Shortcuts dialog.
2016-07-03 23:10:51 +01:00
Nick O'Leary
f62cf6818b Clear context in node test helper
Fixes #858
2016-07-03 23:08:53 +01:00
Nick O'Leary
c05e9da9c5 Allow node properties to be same as existing object functions
Fixes #880
2016-07-03 23:00:48 +01:00
Nick O'Leary
6c00194d35 Handle comms link closely whilst completing the initial connect 2016-06-30 00:44:06 +01:00
Nick O'Leary
6bc3f82afe Protect against node type names that clash with Object property names
Fixes #917
2016-06-30 00:38:48 +01:00
Nick O'Leary
12e46deea2 Ensure importing link nodes to a subflow doesn't add outbound links
Fixes #921
2016-06-29 23:51:08 +01:00
Nick O'Leary
8608d010b8 Clone default node properties to avoid reference leakage 2016-06-29 22:53:14 +01:00
Nick O'Leary
9d4d1acf2d Strip tab node definition when exporting 2016-06-29 21:58:14 +01:00
Nick O'Leary
23087447f1 Check for null config properties in editor before overwritting them 2016-06-29 21:32:39 +01:00
Nick O'Leary
3008e4e60f Add hasUsers flag to config nodes 2016-06-29 21:07:45 +01:00
Nick O'Leary
9d52ed5ff6 Add updateConfigNodeUsers function to editor 2016-06-28 14:57:48 +01:00
Nick O'Leary
5f047633c3 Scroll to bottom when item added to editableList 2016-06-28 10:56:03 +01:00
Nick O'Leary
d3be1f1e2c Fix lint error 2016-06-26 23:55:04 +01:00
Nick O'Leary
c3b1cf7c35 Form input widths behave more consistently when resizing
Fixes #919 #920
2016-06-26 23:48:59 +01:00
Nick O'Leary
682345da22 Inject node should reuse the message it is triggered with
Closes #914
2016-06-25 21:44:10 +01:00
Dave Conway-Jones
82f289c42e (un)Fix inject payload width field
to close #919
2016-06-25 15:53:03 +01:00
Dave Conway-Jones
78eae99bd4 Stop trigger node re-using old message…
to Close #916
Thanks @jimbojw
2016-06-25 10:44:44 +01:00
Nick O'Leary
9ec7bb8d41 bump version 2016-06-20 21:38:09 +01:00
Nick O'Leary
2b9bfbc309 MQTT In subscription qos not defaulting properly 2016-06-20 21:35:43 +01:00
Dave Conway-Jones
e50d04077b Let exec node handle 0 as well as "0" 2016-06-20 19:28:59 +01:00
Nick O'Leary
b6fcaacb77 Create default settings.js in the user-specified directory
Fixes #908
2016-06-20 14:41:47 +01:00
Nick O'Leary
939da4e551 bump version 2016-06-20 14:27:28 +01:00
Nick O'Leary
f30ce1f9eb Cannot add twitter credentials
Fixes #913
2016-06-20 14:25:11 +01:00
Nick O'Leary
343588b2a0 Support array references in Debug property field 2016-06-20 10:19:18 +01:00
Nick O'Leary
77b13ce9d4 Bump version & changelog 2016-06-20 09:56:29 +01:00
Nick O'Leary
7cb41d2ca9 Remove duplicate "Delete" entry in keyboard shortcut window
Fixes #911
2016-06-20 09:56:01 +01:00
Nicholas Humfrey
8bbc9e6502 Added 'exec' to the command in the node-red-pi script (#910) 2016-06-20 09:53:57 +01:00
Nick O'Leary
e29a0df3fd Handle undefined node properties when mapping array references 2016-06-20 09:38:16 +01:00
Nick O'Leary
0eba04aac0 Change example httpStatic to avoid node-red-dashboard clash 2016-06-19 20:25:31 +01:00
Nick O'Leary
b78210e3be Handle numberic msg.payload in HTTP Response node 2016-06-17 22:08:58 +01:00
Nick O'Leary
958de21be8 Update changelog 2016-06-17 21:44:06 +01:00
Nick O'Leary
0eb4742982 Update minor dependency versions and bump version 2016-06-17 21:42:17 +01:00
Nick O'Leary
78b1bf8f25 Merge branch '0.14.0' 2016-06-17 21:30:09 +01:00
Nick O'Leary
08f2741871 Ensure default settings copied to command-line specified userDir
Fixes #908
2016-06-17 21:16:31 +01:00
Dave Conway-Jones
98b24ae630 Merge pull request #798 from natcl/master
Add pinned tab icon for Safari
2016-06-17 14:24:36 +01:00
Dave Conway-Jones
7fc056c8e3 remove extraneous udp console.log
and two tiny whitespace changes
2016-06-17 08:18:26 +01:00
Nick O'Leary
0411623857 Update change log 2016-06-16 00:09:32 +01:00
Nick O'Leary
365d71264f Add index to editableList callback signature 2016-06-16 00:09:32 +01:00
Nick O'Leary
0d4d51fc39 Pass type/value on typedInput.change event 2016-06-16 00:09:32 +01:00
Nick O'Leary
b21745808b Don't mark 'edit subflow template' as primary button 2016-06-16 00:09:32 +01:00
Dave Conway-Jones
e4d5271d58 Better fix for css, reverting test 2016-06-14 23:55:50 +01:00
Dave Conway-Jones
8f2f3bf75d Fix CSV test 2016-06-14 23:20:09 +01:00
Dave Conway-Jones
9e96eba98f fix csv handling of "numbers" with E in... 2016-06-14 22:36:44 +01:00
Nick O'Leary
0441c83fd7 Fix use of hasOwnProperty in Flow
Closes #907
2016-06-14 20:30:37 +01:00
Nick O'Leary
d8405052d8 Dont hover disabled editor primary buttons 2016-06-14 14:38:52 +01:00
Nick O'Leary
cc02b07ff0 Improve edit tray button colour contrast 2016-06-14 14:28:25 +01:00
Nick O'Leary
2d6aac7d6f Update changelog 2016-06-13 22:36:47 +01:00
Nick O'Leary
589d43f0e5 Add RED.util to Function node sandbox 2016-06-13 22:16:36 +01:00
Nick O'Leary
13c1d1df7a Update Debug node to use typedInput for complete/property option 2016-06-13 22:00:42 +01:00
Nick O'Leary
08ade44dc8 Handle more edge cases with RED.util.normalisePropertyExpression 2016-06-13 22:00:42 +01:00
Dave Conway-Jones
8fb1c76247 update font-awesome fonts to latest and
bump some npm pre-req versions
2016-06-13 21:05:32 +01:00
Nick O'Leary
3ad9053d65 Fix multi-level sequences of split/join nodes 2016-06-13 17:44:20 +01:00
Dave Conway-Jones
8fe07e0f07 Limit Pi GPIO to dedicated GPIO pins
to avoid clashes with internal drivers (e.g. I2C, SPI, AMA0 etc)
2016-06-13 14:23:19 +01:00
Nick O'Leary
09b069c129 Add icons to parser nodes 2016-06-12 22:37:38 +01:00
Nick O'Leary
b2db083f39 Another rev of the split/join icons 2016-06-12 21:33:27 +01:00
Nick O'Leary
53e2f3e263 Update split/join icons 2016-06-12 12:24:52 +01:00
Nick O'Leary
945fbbc065 Capture error stack on node.error
Closes #879
2016-06-12 11:07:05 +01:00
Nick O'Leary
4dc9c7714c Clear node context on close
Fixes #870
2016-06-11 22:53:27 +01:00
Nick O'Leary
7302ac5871 Add merged object to Join node 2016-06-11 21:44:00 +01:00
Dave Conway-Jones
1cfad27d6f Delay node only warn once on queue >1000 messages
and then again at >10000 messages
2016-06-10 23:21:12 +01:00
Nick O'Leary
d82fe95076 Update split node docs 2016-06-10 22:51:57 +01:00
Nick O'Leary
8f8df4971c Fix switch node assumptions around string/number handling 2016-06-10 21:03:38 +01:00
Nick O'Leary
fd66569950 Update Join node implementation 2016-06-09 11:33:40 +01:00
Nick O'Leary
e97d9fb0b2 Add draft changelog for 0.14 2016-06-08 17:58:36 +01:00
Nick O'Leary
04424c2a7c Add CHANGELOG.md and make it accessible from menu 2016-06-08 16:18:24 +01:00
Nick O'Leary
241e2828e7 Add support to HTTP In node for PATCH requests
Closes #904
2016-06-08 11:31:59 +01:00
Nick O'Leary
5f6a0141f0 Add cookie handling to HTTP In and HTTP Response nodes 2016-06-08 11:09:18 +01:00
Nick O'Leary
ef2f71859c Join node ui updates 2016-06-07 23:18:46 +01:00
Dave Conway-Jones
fdaeeb5d01 add join icon 2016-06-07 23:18:46 +01:00
Nick O'Leary
e594ffe0f8 Update Join node runtime to match UI changes 2016-06-07 23:18:46 +01:00
Nick O'Leary
9f8c32ce8f Split node UI rework - WIP 2016-06-07 23:18:46 +01:00
Nick O'Leary
762eb07dd4 Add support for array-syntax in typedInput msg properties 2016-06-07 23:01:23 +01:00
Nick O'Leary
0300458ba8 Add error handling to all node definition api calls 2016-06-06 14:45:36 +01:00
Nick O'Leary
3959fcdc88 Handle null return from Function node in array of messages 2016-06-06 11:40:02 +01:00
Dave Conway-Jones
ea76c18f59 Add some info words to config nodes 2016-06-04 09:05:19 +01:00
Nick O'Leary
d125ecc671 Remove rogue console.log 2016-06-04 00:42:33 +01:00
Nick O'Leary
7d9b90a1f3 Disarm click-to-close whilst opening an edit tray 2016-06-04 00:42:08 +01:00
Nick O'Leary
7402c27b6a Reduce tab left-padding below a width threshold 2016-06-04 00:41:26 +01:00
Nick O'Leary
4e762e2063 Enable shift-drag detach of just the selected link 2016-05-31 23:42:00 +01:00
Nick O'Leary
0afe98b399 Move rename flow dialog to editor tray 2016-05-31 23:20:25 +01:00
Nick O'Leary
daed059c47 Emit editor:open/close events from the tray itself 2016-05-31 23:19:43 +01:00
Trisooma
f1ce0fab8b Option to enable cors for editor (#886)
Adds httpAdminCors setting
2016-05-31 14:55:03 +01:00
Nick O'Leary
b5d3f505e3 Defer loading of token sessions until they are accessed
Fixes #895
2016-05-31 14:39:50 +01:00
Nick O'Leary
6c8f688f33 Close the current edit tray when the workspace is clicked 2016-05-31 13:24:56 +01:00
Nick O'Leary
ed1b601a84 Editor buttons should have same border colour as other input elements 2016-05-31 13:09:27 +01:00
Nick O'Leary
add541f67f Restore the edit-select box add behaviour
This reverts commit 59a7c46482.
2016-05-31 13:01:49 +01:00
Nick O'Leary
bea8eb799f Add node/editor lifecycle events 2016-05-29 23:51:20 +01:00
Nick O'Leary
3cac48e86f Fix jshint issue in editableList 2016-05-29 22:41:25 +01:00
Nick O'Leary
64722da4a7 Make sidebars disabled-on-edit by default 2016-05-29 22:37:25 +01:00
Nick O'Leary
ada1e624d8 Update editableList apis 2016-05-29 22:37:25 +01:00
Dave Conway-Jones
69f83cb905 fully log node warnings on start
(i.e. don’t need -v for simple errors on start)
2016-05-26 10:38:24 +01:00
Dave Conway-Jones
807873f685 set pi gpio pin status correctly if set on start 2016-05-26 10:37:20 +01:00
Nick O'Leary
8d4be848b0 Workaround firefox not allowing SVG elements to have focus 2016-05-22 21:23:30 +01:00
Nick O'Leary
59a7c46482 Modify config node select box to have dedicated add button 2016-05-21 22:11:29 +01:00
Nick O'Leary
eabfeb9502 Slow down the tray slide animation slightly 2016-05-21 22:11:10 +01:00
Nick O'Leary
291240dd94 Add editableList widget and update Switch/Change nodes to use it 2016-05-20 22:13:28 +01:00
Nick O'Leary
2f6ed47168 Handle null node array references in catch/status nodes 2016-05-20 10:32:06 +01:00
Nick O'Leary
9a73568c7a Ensure node field change handlers are invoked after editprepare 2016-05-19 22:42:28 +01:00
Nick O'Leary
acdef87be7 Ensure editor resize is called even when limits are hit 2016-05-19 11:16:37 +01:00
Nick O'Leary
b14546605d Fix dialog button order in tab-delete and confirm-deploy dialogs 2016-05-19 11:16:37 +01:00
Nick O'Leary
5ad46106f4 Use onadd in link nodes to ensure imported links are updated 2016-05-19 11:16:37 +01:00
Dave Conway-Jones
3e9be9eed3 remove orion from build 2016-05-18 11:11:59 +01:00
Nick O'Leary
7318a7b767 Prevent parent window scrolling when view is focused
Fixes #635
2016-05-18 09:53:04 +01:00
Nick O'Leary
b78682f413 Change Inject repeat label icon 2016-05-18 09:35:43 +01:00
Nick O'Leary
e50659af09 Add repeat indicator to inject node label
Closes #887
2016-05-17 23:36:09 +01:00
Josh
3454e5ac77 Flows lib honours flowFilePretty setting (#837)
* Flow lib now adheres to pretty flow file, ui also adheres to this as well

* added settings mock object in flows_spec get api test

* reverted api changes, fixed parse of flow only

* try spell flows correctly
2016-05-17 22:09:57 +01:00
Nick O'Leary
9e26aeea1d Handle scoped node modules in the api 2016-05-17 21:56:03 +01:00
Nick O'Leary
d7715b05ee Ensure catch/status/link node references update on import 2016-05-17 09:39:18 +01:00
Nick O'Leary
db433efbef Link nodes show hidden wires when selected
2016-05-17 09:18:32 +01:00
Dave Conway-Jones
f1f8c887c6 bump font awesome to 4.6.2 level 2016-05-11 20:39:38 +01:00
Nick O'Leary
9ae4745ca5 Refocus workspace after closing edit tray 2016-05-11 17:15:36 +01:00
Nick O'Leary
726d9c8ec5 Set z-index of editor shade so it stays above tabs 2016-05-08 22:55:55 +01:00
Nick O'Leary
a9bfa4e79b Allow keyboard shortcuts to be scoped to a dom element
This gets rid of the need to enable/disable the keyboard handling
at various times.

Allows Ctrl-C to work as expected when selecting text in debug/info
sidebar.

Downside is shortcuts that apply to the workspace (select-all, copy
etc) now require the workspace to be focussed.
2016-05-08 22:50:55 +01:00
Nick O'Leary
8e6bba143a Escape regex chars in palette filter input 2016-05-08 20:55:13 +01:00
Nick O'Leary
feeba77f16 Remove console.log debug from tray 2016-05-06 17:20:25 +01:00
Nick O'Leary
ea41a0e842 Improve edit tray size handling for small screens 2016-05-06 17:19:56 +01:00
Dave Conway-Jones
74b7500181 Add javascript highlighter to template node
because it’s FF
2016-05-06 17:00:58 +01:00
Nick O'Leary
594ff8cd3d Add support for loading scoped node modules
Fixes #885
2016-05-06 10:16:41 +01:00
Nick O'Leary
337f5f9b98 Handle missing tab nodes in a loaded flow config 2016-05-04 22:09:11 +01:00
Nick O'Leary
41445a1b48 Merge branch 'config' into 0.14.0
explain why this merge is necessary,
2016-05-04 15:44:48 +01:00
Nick O'Leary
269763fa0c Allow workspace tabs to be re-ordered 2016-05-04 15:22:30 +01:00
Nick O'Leary
fa90eeac55 Make all dialog buttons consistent with editor tray 2016-05-03 21:36:22 +01:00
Nick O'Leary
edceffdaaf Ensure typedInput dropdown doesn't fall off the page 2016-05-03 17:01:45 +01:00
Nick O'Leary
ce25fc658b Move edit tray buttons to top 2016-05-03 15:45:29 +01:00
Dave Conway-Jones
b27db3e2e7 tiny changes to JSON and exec test for node6
no need to specify npm2 defaults are ok now. (on travis)
2016-04-30 17:05:10 +01:00
Dave Conway-Jones
622d4214f7 Let's try that node6 thing again... 2016-04-29 10:00:14 +01:00
Nick O'Leary
0c53b5310a Protect against node types with reserved names such as toString
Fixes #880
2016-04-28 14:17:48 +01:00
Nick O'Leary
45ff86eae5 Do not rely on the HTML file to identify where nodes are registered from 2016-04-28 11:23:42 +01:00
Dave Conway-Jones
47316b0fb7 Merge branch 'master' into 0.14.0 2016-04-27 23:22:37 +01:00
Dave Conway-Jones
c09be02e4e small fix to exec node test 2016-04-27 22:54:00 +01:00
Dave Conway-Jones
bd59398cab Add optional timeout to exec node
(both exec and spawn modes)
and add test for it (both exec and spawn)
also extra test for trigger node.
2016-04-27 22:32:58 +01:00
Nick O'Leary
8080ebceb4 Fix linting error on Flow.js 2016-04-27 12:37:20 +01:00
Nick O'Leary
1e2521c37a Add TLS node and update MQTT/HTTP nodes to use it 2016-04-27 12:33:02 +01:00
Nick O'Leary
b744491dd2 Ensure config nodes are instantiated in the right order 2016-04-27 12:33:02 +01:00
Nick O'Leary
2a089f7d90 Ensure parent nodes marked as changed due to child config node changes 2016-04-27 12:33:02 +01:00
Nick O'Leary
088e3e5374 Validate all edit dialog inputs when one changes 2016-04-27 12:33:02 +01:00
Nick O'Leary
bac8a3092f Recursively validate nodes after editing config node directly 2016-04-27 12:33:02 +01:00
Nick O'Leary
e56da17957 Disable keyboard shortcuts when editing a config node 2016-04-27 12:33:01 +01:00
Nick O'Leary
71b2e714ee Allow config select input to override default width 2016-04-27 12:33:01 +01:00
Nick O'Leary
1b06afb81c Preserve node properties on import 2016-04-27 12:33:01 +01:00
Nick O'Leary
819e48b03a Enable config nodes to reference other config nodes 2016-04-27 12:33:01 +01:00
Nick O'Leary
1861c1feb6 Restore tray size properly when maximised 2016-04-27 12:33:01 +01:00
Nick O'Leary
0efccc4758 Add quick resize buttons to tray 2016-04-27 12:33:01 +01:00
Nick O'Leary
a9feeaa1c9 Make tray resizble and remember size per-node-type 2016-04-27 12:33:01 +01:00
Nick O'Leary
f9c869f521 Refresh node info when edit tray closes 2016-04-27 12:33:01 +01:00
Nick O'Leary
9c766d76f3 Resize tray on create to ensure proper size 2016-04-27 12:33:01 +01:00
Nick O'Leary
333acccff6 Add subflow dialogs to the tray 2016-04-27 12:33:01 +01:00
Nick O'Leary
1790ebf567 Update info sidebar as trays open/close 2016-04-27 12:33:01 +01:00
Nick O'Leary
6354b68bae Config node tray 2016-04-27 12:33:01 +01:00
Nick O'Leary
41b10fd5e4 Add new style tray editor 2016-04-27 12:33:01 +01:00
Dave Conway-Jones
4ad540412a trigger node, fix send last message ...
(if extend not selected).
2016-04-24 21:24:15 +01:00
Dave Conway-Jones
8916cf273e Let trigger node also send last payload to arrive
and add test for it.
2016-04-24 17:42:24 +01:00
Dave Conway-Jones
b2923d0fc4 enhance a couple of tests to check more
Delay node checks  times properly for both types of queue. And File
checks to make sure other payload types are handled (a bit better than
they were)
2016-04-24 17:41:22 +01:00
Dave Conway-Jones
8fc0018cb9 Fix regression in delay node.
topic based queue was emptying all the time instead of spreading out
messages.
2016-04-24 11:08:58 +01:00
Dave Conway-Jones
d0f57efe0b test a few extra paths in several nodes
trigger, switch and file
(and linted delay just because)
2016-04-23 21:06:48 +01:00
Dave Conway-Jones
595ff63b72 Fix exec test for v0.10
Back out nvm 6 in travis (not there yet)
2016-04-23 17:41:56 +01:00
Dave Conway-Jones
9990046abb get more debug from travis for exec test
Don’t have v.10 locally.
And a,y as well try node v6 also ;-)
2016-04-23 17:29:31 +01:00
Dave Conway-Jones
8dacf72b3c try to increase coverage for exec and template nodes
(works locally - may fail on travis - lets see…)
2016-04-23 17:09:46 +01:00
Nick O'Leary
2801838ffa Throw an error if a Function node adds an input event listener 2016-04-21 22:25:47 +01:00
Dave Conway-Jones
59b34c2b3f Add timestamp as a default typedInput
and update Inject and change nodes to match,
and add some tests.
2016-04-18 14:38:36 +01:00
Nick O'Leary
f55f85aa14 Fix debug toolbar button sizes 2016-04-18 14:08:07 +01:00
Nick O'Leary
627a80419a Fix hang on partial deploy with disconnected mqtt node 2016-04-18 13:54:05 +01:00
Dave Conway-Jones
4bc482bc85 update load of grunt related versions
and mqtt and fs-extra and should. Fix tests to keep working.
2016-04-18 12:40:08 +01:00
Dave Conway-Jones
0a1257a23a Add Ace css support / remove swift 2016-04-18 12:38:32 +01:00
Dave Conway-Jones
51d99248d7 update marked.min.js 2016-04-18 12:21:03 +01:00
Dave Conway-Jones
af9aa74337 Add process.env.PORT to settings.js as we said we would 2016-04-18 09:12:12 +01:00
Nick O'Leary
321f5e615b Activate link splice on node centre not mouse position 2016-04-17 21:28:56 +01:00
Nick O'Leary
95c31f3e17 Add option to filter debug by flow and highlight subflow-emitting nodes 2016-04-15 20:20:16 -07:00
Nick O'Leary
cf69dbe1dc TypedInput: preload type icons to ensure width calc correct 2016-04-13 18:10:04 -07:00
Nick O'Leary
e92241bf97 Resize change node rules when they are added 2016-04-13 18:09:41 -07:00
Nick O'Leary
44dc37ef6d Add qos option to MQTT In node 2016-04-11 08:49:50 -07:00
Nick O'Leary
6b0bef61a5 Prompt for login if comms reconnect fails authentication 2016-04-11 08:49:49 -07:00
Nick O'Leary
0c227be02d Back off comms reconnect attempts after prolonged failures 2016-04-11 08:49:49 -07:00
Dave Conway-Jones
08794bad74 Add tests for Change node move function 2016-04-10 15:55:05 +01:00
Nick O'Leary
44693dd23a Enable finer grained permissions in adminAuth 2016-04-10 15:30:13 +01:00
Nick O'Leary
75a7be41eb Better notification message when action is not permitted 2016-04-10 15:30:13 +01:00
Dave Conway-Jones
913b09570c ensure tcp node creates a buffer of size 1 at least 2016-04-10 12:21:56 +01:00
Dave Conway-Jones
1c9b5dfd00 add status to exec spawn mode 2016-04-10 12:21:07 +01:00
Dave Conway-Jones
2954ae917b Add Move capability to change node 2016-04-10 12:20:46 +01:00
Dave Conway-Jones
736ddaeca4 Update Ace Editor 2016-04-10 12:19:59 +01:00
Gabe Johnson
b909e32201 Prevent RED.node.registerNode from overriding a constructor's prototype (#865)
* prevent registry.registerNodeConstructor from overriding a constructors protoype

* fix for node < v5.0.0

* exercise another code path

* altering __proto__ for node < v0.12

* move inheritance code to helper function
2016-04-07 22:18:28 +01:00
Nick O'Leary
bcff74327b Add CoC.md 2016-04-07 21:51:12 +01:00
Nick O'Leary
e60b63e72f Update to CoC 1.4 2016-04-07 21:13:40 +01:00
Nick O'Leary
2bf5d2b4e5 Adopt Contributor Covenant 1.2 2016-04-07 20:49:44 +01:00
Nick O'Leary
e1d09349ff Add link nodes 2016-04-07 17:08:51 +01:00
Nick O'Leary
f07c8108fc Change style of nodes in subflow template view 2016-04-07 16:28:04 +01:00
Nick O'Leary
39f5078d6b Return editorTheme default if value is undefined 2016-04-04 22:30:19 +01:00
Nick O'Leary
1d54761d48 Fix comparison of Buffers (again) 2016-04-01 10:32:11 +01:00
Nick O'Leary
7cb9b2da66 Use Buffer.equals not Buffer.compare for node 4+ 2016-04-01 10:23:00 +01:00
Nick O'Leary
b1896e3737 Fix RED.util.compareObjects for Function created objects and Buffers 2016-04-01 10:13:11 +01:00
Dave Conway-Jones
6fa78bdb04 bump serial port version number
uses typed widget to support other baud rates
2016-04-01 08:56:28 +01:00
Nick O'Leary
ee96f7d937 Fix closing tag in index.mst 2016-03-30 08:59:36 +01:00
Nick O'Leary
129ca0e39f bump version 2016-03-21 11:02:09 +00:00
Dave Conway-Jones
906703db5f Add timed release mode to delay node 2016-03-20 17:46:12 +00:00
Nick O'Leary
0cd4a2b4ec Add api/flow_spec tests
Part of #840
2016-03-18 21:01:21 +00:00
Nick O'Leary
aef8aaa0bd Enable link splicing for when import_dragging nodes
Closes #811
2016-03-17 11:12:45 +00:00
Nick O'Leary
428fbb8622 Fix uncaught exception on deploy whilst node sending messages 2016-03-16 15:37:44 +00:00
Nick O'Leary
b9f03e7d80 Deprecate old mqtt client and connection pool modules 2016-03-16 11:15:30 +00:00
Nick O'Leary
db686388b9 Fix registry test for Node 5 2016-03-16 11:05:10 +00:00
Nick O'Leary
626cba4002 Change node: add bool/num types to change mode
Closes #835 #835 #835
2016-03-13 23:10:10 +00:00
Nick O'Leary
37d4a6b9e2 Validate fields that are $(env-vars)
Closes #825
2016-03-13 14:29:36 +00:00
Nick O'Leary
12c4561aba Handle missing config nodes when validating node properties 2016-03-13 13:25:59 +00:00
Dave Conway-Jones
fed49e3718 pi node - don't try to send data if closing 2016-03-13 10:58:22 +00:00
Nick O'Leary
3af37d3984 Load node message catalog when added dynamically 2016-03-12 22:53:07 +00:00
Nick O'Leary
0f49a11228 Split palette labels on spaces and hypens when laying out 2016-03-12 22:41:23 +00:00
Nick O'Leary
27d3e165b0 Message catalog updates for zero-length flow file handling 2016-03-12 00:04:27 +00:00
Nick O'Leary
e941c22f6c Warn if editor routes are accessed but runtime not started
Closes #816
2016-03-12 00:03:50 +00:00
Nick O'Leary
7281e4deb6 Add zero-length flow file tests 2016-03-11 22:58:11 +00:00
Nick O'Leary
f2191e94b3 Better handling of zero-length flow files
Closes #819

If a flow file is found to be zero-bytes:
  If there is a non-empty backup, restore the backup and resolve
  If there is no backup or it is also empty, resolve empty flow
If a flow file is found to be invalid json:
  Log and resolve empty flow
2016-03-11 22:42:04 +00:00
Dave Conway-Jones
349ebfe4db remove extra brace added to library.js in error 2016-03-06 20:54:46 +00:00
Nick O'Leary
708365c4ac Allow runtime calls to RED._ to specify other namespace 2016-03-06 20:43:19 +00:00
Dave Conway-Jones
0e9ea0aff1 Replace - & _ from example node name labels with space
and align lines (ocd)
2016-03-05 17:07:39 +00:00
Dave Conway-Jones
63ba05a193 Better right alignment of numerics in delay and trigger nodes 2016-03-04 10:12:07 +00:00
Nick O'Leary
4b702815cf Strip node-red-contrib/node- prefix from Example menu labels 2016-03-03 11:02:37 +00:00
Nick O'Leary
55e66ebcac Allow node modules to include example flows 2016-03-02 23:34:24 +00:00
Nick O'Leary
dcd8b3699c Create node_modules in userDir
This ensures npm install puts modules under .node-red even if there's
already a node_modules dir in the parent directory.
2016-03-01 22:08:37 +00:00
Nick O'Leary
0e2d13172a Ensure errors in node def funcs don't break view rendering
Fixes #815

 - also fixes errors in the Catch/Status node label funcs #815
2016-03-01 21:58:57 +00:00
Nick O'Leary
2e2556fdad Merge pull request #805 from aryehof/InjectInfoUpdate
Updated Inject node info with instructions for flow and global options
2016-02-26 14:07:21 +00:00
Nick O'Leary
859a7538e1 Fix crash on repeated inject of invalid json payload 2016-02-26 10:35:15 +00:00
Dave Conway-Jones
0d1543ee8a Add tail node binary mode test 2016-02-25 08:52:43 +00:00
Dave Conway-Jones
d3a98dd355 Add binary mode to tail node 2016-02-24 23:06:27 +00:00
Dave Conway-Jones
ad10125303 revert Cheerio to somewhat smaller version 2016-02-23 09:47:49 +00:00
Dave Conway-Jones
b89e866d39 Add os/platform info to default debug 2016-02-22 17:47:16 +00:00
Dave Conway-Jones
afbaf1cfe0 make sample node info consistent <code> 2016-02-22 17:46:14 +00:00
Dave Conway-Jones
b3be8b30e7 remove direction flag from delay node 2016-02-22 17:45:28 +00:00
Aryeh Hoffman
8bfab8f73d Updated Inject node info with instructions for flow and global options 2016-02-21 18:17:05 +02:00
Nick O'Leary
c6ad2c9ad2 Don't force reconnect mqtt client if message arrives
Fixes the annoying mqtt connect/disconnect cycle
2016-02-19 22:52:43 +00:00
Nick O'Leary
3b44d9972e Bump package version 2016-02-19 21:21:22 +00:00
Nick O'Leary
af736c98f2 Add -p/--port option to override listening port 2016-02-19 21:18:50 +00:00
Nick O'Leary
f1377fa217 Invert toggle button colours so state is more obvious 2016-02-18 10:28:22 +00:00
Dave Conway-Jones
2ba146b9ff Add timeout to httprequest node
and override 2 min default in settings.js.
to Close #801
2016-02-15 09:45:58 +00:00
Dave Conway-Jones
2361607aa3 file node info to same style as others 2016-02-14 13:45:14 +00:00
Nick O'Leary
86ffc80098 Tidy up spinner css 2016-02-14 11:52:33 +00:00
Dave Conway-Jones
7f6915eb59 tcp node add reply (to all) capability
if no _session present.
2016-02-12 13:17:50 +00:00
Dave Conway-Jones
d69bcad028 hardware, logic, storage nodes info updates
(and udp)
2016-02-12 13:17:21 +00:00
Dave Conway-Jones
4cb45e2712 parser node info updates 2016-02-12 13:16:28 +00:00
Dave Conway-Jones
b7a0ad703a io and analysis nodes info updates 2016-02-12 13:15:53 +00:00
Dave Conway-Jones
7610b9a975 core nodes info updates 2016-02-12 13:15:05 +00:00
Dave Conway-Jones
7d95f621df update UDP node info to be more correct. 2016-02-11 22:21:12 +00:00
Nick O'Leary
bba210e112 Allow the template node to be treated as plain text 2016-02-11 13:16:15 +00:00
Nick O'Leary
3a97e20bde Validate MQTT In topics
Fixes #792
2016-02-10 22:38:59 +00:00
Nick O'Leary
4fe7ea00b0 httpNodeAuth should not block http options requests
Fixes #793#793#793
2016-02-10 21:57:46 +00:00
Nick O'Leary
3ec8ecd4de Disable perMessageDeflate on WS servers
Workaround for this issue: https://github.com/websockets/ws/pull/632
as it has been fixed in the 1.x release that drops support for
node 0.10...
2016-02-10 21:43:37 +00:00
Dave Conway-Jones
401e65e852 Merge pull request #799 from natcl/patch-1
Fix typo in delay node: replaced ramdom to random
Thanks @natcl
2016-02-09 23:09:10 +00:00
Nathanaël Lécaudé
e7c5b691a0 More ramdom --> random 2016-02-09 18:03:27 -05:00
Nathanaël Lécaudé
9f3ea8da67 Fix typo in delay node: replaced ramdom to random 2016-02-09 17:57:50 -05:00
Nathanaël Lécaudé
d1269b441d Update index.mst 2016-02-08 09:20:43 -05:00
Nathanaël Lécaudé
7615743aa5 Update theme.js 2016-02-08 09:20:07 -05:00
Nathanaël Lécaudé
dcaa0eeea4 Add node-red-icon-black.svg file to header
Add node-red-icon-black.svg file to header, according to Safari's pinned tab icon spec.
See :
https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/pinnedTabs/pinnedTabs.html
2016-02-08 00:05:17 -05:00
Nathanaël Lécaudé
1d5e2f703e Create node-red-icon-black.svg 2016-02-08 00:01:19 -05:00
Dave Conway-Jones
4d84d624b1 clear trigger status icon on re-deploy 2016-02-04 22:13:08 +00:00
Nick O'Leary
633a6a0ee6 Fix inject test to use a proper type 2016-02-04 21:52:27 +00:00
Nick O'Leary
c7bcd3f438 Don't default inject payload to blank string 2016-02-04 21:43:18 +00:00
Dave Conway-Jones
d3a29a6f16 fix trigger tests 2016-02-04 21:22:52 +00:00
Dave Conway-Jones
827711ca89 Fix util jshint as we need the behaviour. 2016-02-04 21:21:57 +00:00
Dave Conway-Jones
76e98f74fa let new typed-inputs return correctly
0 now returns correct type for boolean and number when required.
2016-02-04 21:06:20 +00:00
Dave Conway-Jones
fb09f4b22d trigger node, add configurable reset
and make it do strings when it says so, and numbers if you want.
2016-02-04 21:05:15 +00:00
Dave Conway-Jones
bb06585748 another tidy up on Pi GPIO node 2016-02-03 21:10:44 +00:00
Nick O'Leary
c76ba1dcc7 Allow function properties in settings
Fixes #790
2016-01-29 11:56:16 +00:00
Nick O'Leary
a115301b04 Fix order of config dialog calls to save/creds/validate 2016-01-29 11:56:16 +00:00
Dave Conway-Jones
72917117a9 Add debounce to Pi GPIO node 2016-01-25 09:56:35 +00:00
Nick O'Leary
6567739236 Bump version 2016-01-21 22:20:18 +00:00
Nick O'Leary
4aa6b47c0e Revert wrapping of http requestion object
Fixes #787
2016-01-21 22:15:25 +00:00
Nick O'Leary
03558b012c Bump version and dependencies 2016-01-18 11:09:52 +00:00
Nick O'Leary
3288efdad6 Remove unimplemented flow.enable/disable functions 2016-01-18 10:53:50 +00:00
Dave Conway-Jones
3902a343f3 Add ports in use warning to udp node
to close #786
Thanks @hugobox
2016-01-17 10:34:40 +00:00
Dave Conway-Jones
882b7d0391 change settings.js example to octalbonescript 2016-01-16 13:58:24 +00:00
Nick O'Leary
81f082825d Add 'previous value' option to Switch node 2016-01-15 11:35:59 +00:00
Nick O'Leary
392fd6fed3 Allow existing nodes to splice into links on drag 2016-01-14 15:59:45 +00:00
Nick O'Leary
51afed4041 Ensure config list refreshes properly on tab delete 2016-01-14 15:22:00 +00:00
Nick O'Leary
17e3b71d9c Allow update of global flow 2016-01-14 14:57:13 +00:00
Nick O'Leary
6e75089f3a CORS not properly configured on multiple http routes
Fixes #783
2016-01-13 12:54:34 +00:00
Nick O'Leary
6dc640b129 Add hidden count when config node filtered 2016-01-13 10:30:24 +00:00
Nick O'Leary
27cbaac343 Restore shift-drag to snap/unsnap to grid 2016-01-13 09:16:24 +00:00
Nick O'Leary
fa4006619e Make debug/config sidebar headers consistent 2016-01-12 23:55:18 +00:00
Nick O'Leary
cb8fe8462a Moving nodes with keyboard should flag workspace dirty 2016-01-12 23:08:13 +00:00
Nick O'Leary
abd51a5511 Notifications flagged as fixed should not be click-closable 2016-01-12 23:06:18 +00:00
Nick O'Leary
a0cc1e6b0c Add config node filter 2016-01-12 23:03:33 +00:00
Nick O'Leary
50399c6bfa Rework config sidebar and deploy warning 2016-01-12 17:54:53 +00:00
Nick O'Leary
de48c1be44 Wrap http request object to match http response object 2016-01-11 22:35:31 +00:00
Nick O'Leary
0786ec4b66 Move typedInput icons and update boolean 2016-01-11 21:24:35 +00:00
Nick O'Leary
db319e0ebc Ensure global context is seeded properly 2016-01-11 11:28:01 +00:00
Nick O'Leary
4fc568856a Clear link_splice style on drag end 2016-01-11 11:00:54 +00:00
Nick O'Leary
4c6771669b Fix palette node link splicing on Firefox 2016-01-10 22:25:20 +00:00
Nick O'Leary
9bca2a91c9 Tidy up view menu 2016-01-10 21:25:05 +00:00
Nick O'Leary
66eaaf5a48 Add 'view' menu and reorganise a few things 2016-01-09 20:39:03 +00:00
Nick O'Leary
9837f0e2e1 Highlight node port when dragging wires and undash the wires 2016-01-09 13:47:05 +00:00
Nick O'Leary
6b8ffb4c68 Fix lint issues in view 2016-01-09 00:31:05 +00:00
Nick O'Leary
f35dd34da9 Allow shift-click to detach existing wires 2016-01-09 00:29:04 +00:00
Nick O'Leary
ed19e4fa08 Splice nodes dragged from palette into links 2016-01-08 22:34:10 +00:00
Dave Conway-Jones
661e1a4f90 try to trim imported/dragged flows to [ ] 2016-01-08 19:54:16 +00:00
Nick O'Leary
5826de76ca Make dragging nodes from the palette line up better 2016-01-08 14:42:05 +00:00
Nick O'Leary
05888740e5 Update jquery version to 0.11.3 2016-01-08 14:41:37 +00:00
Nick O'Leary
41f3b0c333 Fix variable leak in theme.js 2016-01-08 13:41:33 +00:00
Nick O'Leary
70f3e72a20 Move version number as title of NR logo 2016-01-08 13:36:49 +00:00
Nick O'Leary
e873afd40b Moving nodes mark workspace as dirty 2016-01-08 11:08:48 +00:00
Nick O'Leary
2777c2937a Make version number slightly darker 2016-01-07 22:29:20 +00:00
Nick O'Leary
798903e4cc Move layout menu down one position 2016-01-07 22:28:03 +00:00
Nick O'Leary
58622ba18f Attach dialog close handlers to dialog parents 2016-01-07 20:08:31 +00:00
Nick O'Leary
c368dcd5b7 Ok/Cancel edit dialogs with Ctrl-Enter/Escape 2016-01-07 17:10:59 +00:00
Nick O'Leary
0b4c652ce7 Add version number of sidebar footer 2016-01-07 16:42:10 +00:00
Nick O'Leary
dbaacc411a Handle OSX Meta key when selecting nodes 2016-01-07 15:09:14 +00:00
Nick O'Leary
1850185d1e Add grid-alignment options 2016-01-07 14:39:01 +00:00
Nick O'Leary
2e9d445d36 Add oneditresize function definition 2016-01-06 17:01:14 +00:00
Nick O'Leary
aed89d82fb Fix template test 2016-01-06 17:01:14 +00:00
Nick O'Leary
231adac6d8 Rename typedInput.options 2016-01-06 17:01:14 +00:00
Nick O'Leary
587c4e5915 Update template node to use typedInput 2016-01-06 17:01:14 +00:00
Nick O'Leary
55f1cbf18f Ensure inject payload exists 2016-01-06 17:01:13 +00:00
Nick O'Leary
38168a545b Update Inject node to use typedInput 2016-01-06 17:01:13 +00:00
Nick O'Leary
43c6df49d7 Update typedInput nls 2016-01-06 17:01:13 +00:00
Nick O'Leary
f1c59faf72 Rename propertySelect to typedInput and add boolean opt 2016-01-06 17:01:13 +00:00
Nick O'Leary
5f7019325c Update switch/change help text to reflect updates 2016-01-06 17:01:13 +00:00
Nick O'Leary
fe4dae8518 Add propertySelect to switch node 2016-01-06 17:01:13 +00:00
Nick O'Leary
1f848b205b Add propertySelect support to Change node 2016-01-06 17:01:13 +00:00
Nick O'Leary
742c470d81 Add context/flow/global support to Function node 2016-01-06 17:01:13 +00:00
Nick O'Leary
5ead3342cc Add node context/flow/global 2016-01-06 17:01:13 +00:00
Nick O'Leary
b95dc2ecce Add propertySelect jquery widget 2016-01-06 17:01:13 +00:00
Nick O'Leary
4d0950215f Don't allow tabs or subflows to be added with new flow 2016-01-06 17:01:13 +00:00
Nick O'Leary
da0ce9fe0d Simplify flow api implementation and add logging messages 2016-01-06 17:01:13 +00:00
Nick O'Leary
ca62e720b5 Add missing spec file 2016-01-06 17:01:13 +00:00
Nick O'Leary
c4b1795396 Add add/update/delete flow apis 2016-01-06 17:01:13 +00:00
Nick O'Leary
fd2e47ed73 WIP: add flow api 2016-01-06 17:01:12 +00:00
Nick O'Leary
d5f2255a68 Handle null coreNodesPath 2016-01-06 17:01:12 +00:00
Nick O'Leary
05b58e9263 Allow core nodes dir to be provided to runtime via settings 2016-01-06 17:01:12 +00:00
Nick O'Leary
4a91c27e4b Allow server to be option on red.init 2016-01-06 17:01:12 +00:00
Nick O'Leary
3a03d46d8d Fix lint error in registry.js 2016-01-06 17:01:12 +00:00
Nick O'Leary
f03aff7006 Tidy up API passed to node modules 2016-01-06 17:01:12 +00:00
Nick O'Leary
043b8a3105 Register node message catalog directly, not via event 2016-01-06 17:01:12 +00:00
Nick O'Leary
1dd9984521 Pickup default language from i18n module 2016-01-06 17:01:12 +00:00
Nick O'Leary
d2be7f8c8f Move locale files under api/runtime components 2016-01-06 17:01:12 +00:00
Nick O'Leary
88dc202db2 Fix node test helper for api/runtime changes 2016-01-06 17:01:12 +00:00
Nick O'Leary
083d54b008 Add unit test for flow reload api 2016-01-06 17:01:11 +00:00
Nick O'Leary
87d77efa57 Add flow reload admin api 2016-01-06 17:01:11 +00:00
Nick O'Leary
35c4a41d7b Node id generation should only be done in runtime/util 2016-01-06 17:01:11 +00:00
Nick O'Leary
1ca3ca07d5 api/nodes accessing comms module incorrectly 2016-01-06 17:01:11 +00:00
Nick O'Leary
d673846e3d WIP: runtime api for node modules 2016-01-06 17:01:11 +00:00
Nick O'Leary
f62b7afede Remove all uses of fs.exists as it is deprecated
The tests still use it in places - particular localfilesystem tests,
but those tests need to be redone with sinon stubbing in place and
not rely on real fs operations.
2016-01-06 17:01:11 +00:00
Nick O'Leary
e65770a53a Add missing test resources
They were ignored as they have node_modules in the path...
2016-01-06 17:01:11 +00:00
Nick O'Leary
a92a741932 Fix incorrect async test completion 2016-01-06 17:01:11 +00:00
Nick O'Leary
45f67191ba Improve node registry test coverage 2016-01-06 17:01:11 +00:00
Nick O'Leary
93f5da325b Fix node test helper for runtime/api changes 2016-01-06 17:01:11 +00:00
Nick O'Leary
8fb955e182 Move comms from runtime to api component 2016-01-06 17:01:11 +00:00
Nick O'Leary
9f5e6a4b37 Update tests for runtime/api separation 2016-01-06 17:01:11 +00:00
Nick O'Leary
f43738446e WIP: separate runtime and api components 2016-01-06 17:01:11 +00:00
Nick O'Leary
923a46d304 Bump version 0.12.5 2016-01-06 16:55:38 +00:00
Dave Conway-Jones
b9b5eaccae better handle utf8 file output chars 2016-01-06 12:27:47 +00:00
Dave Conway-Jones
cda11491c2 bump sentiment node npm prereq 2016-01-06 12:27:47 +00:00
Nick O'Leary
98c539f662 Refresh active nodes when node properties change 2016-01-04 22:05:17 +00:00
Dave Conway-Jones
9fb958b302 close tcp node connection properly when required. 2015-12-23 20:01:05 +00:00
Dave Conway-Jones
8e25e76439 Add hint re servos to Pi GPIO node info 2015-12-23 11:50:47 +00:00
Nick O'Leary
62694da7e6 Ensure last mqtt node turns off the lights before closing
The mqtt-broker node disconnects when the last node using it
is closed. But that node-close was not waiting for the disconnect
to complete. This led to a race-condition where the using node
was recreated and started trying to use the broker node whilst it
was still disconnecting.
2015-12-22 23:31:22 +00:00
Dave Conway-Jones
86064651af Add Pi Keyboard code node 2015-12-21 10:27:58 +00:00
Dave Conway-Jones
65daaeb617 add attribute test to HTML parser node tests 2015-12-19 14:30:43 +00:00
Dave Conway-Jones
08b39f50b3 Add attribute capability to HTML parser node 2015-12-19 12:44:11 +00:00
Nick O'Leary
d0f7e5ca4d Bump version 0.12.4 2015-12-14 10:01:10 +00:00
Nick O'Leary
4eb5058e68 Add readOnly setting to prevent file writes in localfilesystem storage 2015-12-13 22:45:44 +00:00
Nick O'Leary
1054193298 Update example httpNodeAuth setting to be bcrypt 2015-12-13 21:27:57 +00:00
Nick O'Leary
38c6cf0450 Support bcrypt for httpNodeAuth 2015-12-13 20:46:27 +00:00
Dave Conway-Jones
5b04b86867 remove extraneous s from GPIO node... 2015-12-12 15:18:17 +00:00
Dave Conway-Jones
a074bcfd56 Pi no longer needs root workaround to access gpio
(stops PAM logging in Node-RED log under systemd)
2015-12-12 15:13:15 +00:00
Nick O'Leary
f93179d946 Rename library filename field to avoid id clash
Fixed #767
2015-12-12 12:57:33 +00:00
Nick O'Leary
2c347bc092 Bump version for 0.12.3 2015-12-11 22:02:37 +00:00
Dave Conway-Jones
0f7119f468 TCPget don't send nun msg on disconnect
(as we now send status anyway)
2015-12-11 14:17:50 +00:00
Dave Conway-Jones
2685a24705 Let TCPget node pass through other msg properties 2015-12-11 14:07:20 +00:00
Nick O'Leary
371f72f4f1 Skip delay node burst test 2015-12-11 14:04:24 +00:00
Nick O'Leary
c70c00043b Attached admin route before node route security 2015-12-11 13:42:44 +00:00
Nick O'Leary
50d0a88276 Ensure tabs are removed from runtime on partial deploy 2015-12-10 15:47:15 +00:00
Dave Conway-Jones
5bbf576dae set fa-icons perms 644 not 755... 2015-12-10 13:57:54 +00:00
Nick O'Leary
5d334e9619 Clarify auth settings in default settings.js 2015-12-10 13:20:58 +00:00
Dave Conway-Jones
98f9353338 bump serial port package dependency version. 2015-12-10 13:11:14 +00:00
Nick O'Leary
d3de7037e5 Move HTTPRequest node to its own file 2015-12-10 12:58:50 +00:00
Nick O'Leary
64431c6711 Ensure node.ports is properly intialised
Fixes #766
2015-12-10 10:46:12 +00:00
Dave Conway-Jones
d4ce193dc8 Fix trigger to block properly until reset
Fix to Close #764
2015-12-09 16:42:16 +00:00
Dave Conway-Jones
606305aec4 Bump FA-Icons to v4.5 2015-12-09 15:38:37 +00:00
Dave Conway-Jones
a95f44d68b remove annoying comma from comm.js
OCD reasons only
2015-12-09 13:37:20 +00:00
Dave Conway-Jones
ef2dc4b9e1 One more tidy up for tcp node 2015-12-07 22:39:42 +00:00
Dave Conway-Jones
9baca1772b Close tcp port for tcpin node (same as previous fix but for input) 2015-12-07 22:39:42 +00:00
Nick O'Leary
04cd19349d Don't reuse node-edit dialog for library export ui
Fixes #762
2015-12-07 22:15:14 +00:00
Dave Conway-Jones
1280e5bc8b Close tcp out node more forcibly. (and update status) on redeploy. 2015-12-07 17:41:51 +00:00
Dave Conway-Jones
dda90f956d Clear delay node status on re-deploy. (rate limit path) 2015-12-02 15:37:36 +00:00
Dave Conway-Jones
bc4b599513 Fix udp socket creation error on node v0.10 2015-12-01 14:52:15 +00:00
Dave Conway-Jones
090d52d678 narrowing in on tcpget fix, reconnect but don't resend.
to address issue #759
2015-12-01 13:41:39 +00:00
Dave Conway-Jones
a47ad4842a Clean up tcpget node connected status.
to address #759
2015-11-30 22:05:26 +00:00
Nick O'Leary
3d5ed840dc Bump version for 0.12.2 2015-11-28 20:32:19 +00:00
Nick O'Leary
11d75ff581 Inject time spinner incrementing value incorrectly 2015-11-26 09:56:49 +00:00
Nick O'Leary
306fb7a3d1 Kill processes run with exec node when flows redeployed 2015-11-24 23:09:44 +00:00
Nick O'Leary
0839b6f58e Debug node not handling null messages 2015-11-24 23:09:32 +00:00
Nick O'Leary
fceca703b3 Update tcp node status on reconnect after timeout
Closes #757
2015-11-24 22:40:39 +00:00
Nick O'Leary
4dc60d2477 Clarify debug rate limit method 2015-11-21 21:30:03 +00:00
Nick O'Leary
d840d0b67d Fix mqtt node lifecycle with partial deployments 2015-11-17 22:19:56 +00:00
Dave Conway-Jones
43dad4c465 ensure udp socket bind works more often 2015-11-16 08:38:22 +00:00
Dave Conway-Jones
60812b2d8a fix udp node messages
(timing issue still outstanding)
2015-11-16 00:25:26 +00:00
Nick O'Leary
35e2caff13 Handle errors thrown in Function node setTimeout/Interval 2015-11-15 22:22:17 +00:00
Nick O'Leary
1d9d5c6bc7 Add node 5 to travis 2015-11-14 21:32:28 +00:00
Nick O'Leary
4d99536ea7 Function setTimeout/Interval wrapper not returing timer id
Fixes #753
2015-11-14 21:21:14 +00:00
Nick O'Leary
34537180c3 Fix basic authentication on httpNode/Admin/Static 2015-11-10 15:44:48 +00:00
Nick O'Leary
cb01920ee6 Allow nodes to be installed by path name 2015-11-09 16:52:14 +00:00
Nick O'Leary
437b01a0ff Move node installer to its own module 2015-11-09 11:29:48 +00:00
Nick O'Leary
075a2abf71 Use child_process.execFile to prevent command injection 2015-11-08 14:26:11 +00:00
Nick O'Leary
985875cc75 Move node install/remove from server component to node engine 2015-11-08 14:06:36 +00:00
Nick O'Leary
1c45bc615f Enable touch-menu for links so they can be deleted 2015-11-06 16:46:07 +00:00
Nick O'Leary
fa7f2606fb bump version 2015-11-06 13:42:00 +00:00
Nick O'Leary
12b95f1c72 Enable config node dialog to have editor ui 2015-11-06 11:08:07 +00:00
Nick O'Leary
a0aee2021d Tidy up sheets/flows labelling 2015-11-05 14:22:15 +00:00
Nick O'Leary
c90fd1e6d8 Move credential http API handling to api component 2015-11-04 11:13:43 +00:00
Dave Conway-Jones
3b769fd2de add bash directive to nrgpio script 2015-11-04 08:42:00 +00:00
Nick O'Leary
71ecb89abc Merge branch 'flowengine' 2015-11-03 20:24:55 +00:00
Nick O'Leary
7b6bc1d3bc Increase default api request limit to 1mb
- expose it via settings.apiMaxLength
 - audit log api errors
2015-11-03 11:23:37 +00:00
Nick O'Leary
9c3be40fbe Automatically clear timeouts/intervals set in Function node
closes #744
2015-11-03 10:47:29 +00:00
Nick O'Leary
ab87fa9ce4 Ensure status/errors from global config nodes propagate properly 2015-11-03 10:20:00 +00:00
Nick O'Leary
d1940a023a Complete test coverage on flow engine refactor 2015-11-02 15:58:40 +00:00
Nick O'Leary
5a176a037c Update test helper for refactored flow engine 2015-11-02 15:58:40 +00:00
Nick O'Leary
ec25191c98 Flow Engine refactor
Each flow/tab now exists as its own logical object. This is the ground
work for allowing flows to be added/removed/updated independently.
2015-11-02 15:58:29 +00:00
Nick O'Leary
20b321f928 Handle null subflow info property 2015-10-26 11:12:49 +00:00
Dave Conway-Jones
425b016d63 Add missing space to label in delay node 2015-10-26 09:42:16 +00:00
Nick O'Leary
b2c7189ce4 Update package dependencies 2015-10-25 21:36:20 +00:00
Nick O'Leary
f66886dbdb Websocket input node not unsubscribing properly
Fixes #739
2015-10-23 23:01:25 +01:00
Nick O'Leary
712f8b4680 Add description field to Subflows 2015-10-23 22:14:39 +01:00
Nick O'Leary
f626ee060a Allow properties to be specified by environment variables
A property set to $(ABC) will be substituted with the environment
variable ABC - if it exists. If the property doesn't exist, the property
is left unchanged.
2015-10-23 22:14:39 +01:00
Dave Conway-Jones
86aa7c97be Make exec node status indication consistent with others 2015-10-22 19:02:22 +01:00
Dave Conway-Jones
30e3525987 Add status icon to trigger node while it is active 2015-10-22 16:27:07 +01:00
Dave Conway-Jones
ad44f838da update sample to refer to fa-icons 2015-10-20 19:30:42 +01:00
Dave Conway-Jones
2569a35b6c fix closing web socket timeout
to close #738 - thanks to @GSeva for spotting it.
2015-10-20 18:58:37 +01:00
Dave Conway-Jones
1ee5e50d50 Turn on tcp node socket keepalive when in server mode 2015-10-20 10:13:48 +01:00
Dave Conway-Jones
1dbec5eca8 slight tidy of Pi Mouse node 2015-10-20 10:02:57 +01:00
Nick O'Leary
2bc8db308c Add missing tab-config file 2015-10-17 19:05:23 +01:00
Nick O'Leary
f196740426 Restore config node tab 2015-10-16 21:56:20 +01:00
Dave Conway-Jones
20121b79c5 Let CSV node handle null columns in input array. array-> csv 2015-10-16 20:42:25 +01:00
Nick O'Leary
741a4cfe53 Don't assume def.align is set to 'right'
Fixes #734
2015-10-15 14:27:30 +01:00
Dave Conway-Jones
0343de9f34 Add status capability to function node 2015-10-15 13:33:05 +01:00
Nick O'Leary
4772bca14a Undo 'selection to subflow' not restoring nodes 2015-10-15 11:34:17 +01:00
Dave Conway-Jones
6ae1a5ba0d let CSV obj->css allow blank columns in template 2015-10-15 08:31:42 +01:00
Dave Conway-Jones
217c9718e4 catch missing template error in CSV parser node
and update help info
2015-10-14 23:38:29 +01:00
Dave Conway-Jones
61d7893467 Enhance CSV node to accept simple arrays -> css 2015-10-14 23:07:25 +01:00
Dave Conway-Jones
8f26c01f4b fix escaping of quotes in CSV node 2015-10-14 11:02:31 +01:00
Dave Conway-Jones
61045ddd7f try to fix debug node non-standard object type handling. 2015-10-10 22:41:07 +01:00
Dave Conway-Jones
1bf72a0bc3 correct TCP node server status message 2015-10-09 15:44:22 +01:00
Dave Conway-Jones
6d84b1bb8d update inspect to come from correct package (util)
(works from v0.10 onwards - but now deprecated in v4)
2015-10-09 13:36:35 +01:00
Dave Conway-Jones
8abd0b1fdf Detect/set correct method for http proxy
to close #732 — thanks @utaani
2015-10-09 09:19:09 +01:00
Dave Conway-Jones
81e125b7ba add bit more help to exec node
Point out that parameters with spaces should be quoted
2015-10-05 21:41:53 +01:00
Dave Conway-Jones
d5e1468718 Normalise spawn behaviour in exec node to accept identical parameters
Can now just tick or untick spawn and command still works.
2015-10-05 21:17:35 +01:00
Nick O'Leary
c232bf5ed6 Avoid unnecessary isUtf8 check on HTTP payloads 2015-10-05 21:10:32 +01:00
Nick O'Leary
21b25ffaee Merge pull request #730 from jthomas/master
Allow HTTP nodes to handle non-UTF8 content.
2015-10-05 20:52:35 +01:00
Dave Conway-Jones
ca0a93df08 Add Node-RED sag icon to default images 2015-10-05 13:46:42 +01:00
James Thomas
699a22c757 Allow HTTP nodes to handle non-UTF8 content.
Setting UTF-8 as the default body encoding stops us sending binary
content, e.g. audio, which can be decoded into a Buffer.

Use "Content-Type" header to decide whether to decode as UTF-8 or a
Buffer.
2015-10-05 11:53:29 +01:00
Nick O'Leary
8b2b1669b5 Add ignore-case flag to Switch regex rule
closes #366
2015-10-04 22:14:49 +01:00
Dave Conway-Jones
c1e8370916 Lets spawn msg.payload contain comma separated parameters
(like rest of parameters passed in to spawn via edit dialogue)
Will also accept an array…
2015-10-04 19:22:33 +01:00
Nick O'Leary
ddedea8b90 Resize change/switch rules with the dialog 2015-10-03 22:30:28 +01:00
Nick O'Leary
8f414ce458 Update auth revoke test for express 4 2015-10-03 20:32:24 +01:00
Nick O'Leary
453f23da20 Move to node 4.x.x in travis 2015-10-03 09:15:11 +01:00
Nick O'Leary
9e91e42a1b Increase delay burst test timeout
The test was occasionally timing out, despite it succeeding. Increased
the timeout to give it a bit more safety margin to complete
2015-10-03 09:06:51 +01:00
Nick O'Leary
b666734c79 Update dependency versions 2015-10-02 22:13:15 +01:00
Nick O'Leary
a2297f303d Update config node user list when node edits are undone 2015-10-02 21:27:31 +01:00
Nick O'Leary
ecde942255 Wrap msg.req/res objects and add deprecated warnings to functions 2015-10-02 21:27:31 +01:00
Nick O'Leary
d668d43a0a Move to express 4.x 2015-10-02 21:27:31 +01:00
Nick O'Leary
ca91a5dd95 Rename flow menu ids back to workspace 2015-10-02 21:27:31 +01:00
Nick O'Leary
5f9780d71c Improve error message if settings file fails to load 2015-10-02 21:27:31 +01:00
Nick O'Leary
ee37464741 Copy settings file to userDir on start-up if it makes sense
It will only copy the file if:
 - a custom file hasn't been specified (-s file)
 - there isn't an existing settings.js file in userDir
 - the default settings file (in install dir) hasn't been
   modified (mtime < ctime)
2015-10-02 21:27:31 +01:00
Nick O'Leary
8d73f927db Debug output should use overridden toString method if set
Closes #690
2015-10-02 21:27:31 +01:00
Nick O'Leary
4a0222bd1c Warn if a node references an unknown config node type
Closes #709
2015-10-02 21:27:31 +01:00
Nick O'Leary
c0b8f5e3e1 Add tab info to deploy error messages 2015-10-02 21:27:31 +01:00
Nick O'Leary
a9a0b263dc Add undo support for config-node delete 2015-10-02 21:27:30 +01:00
Nick O'Leary
f2b73187d8 Name flows back to sheets in the ui 2015-10-02 21:27:30 +01:00
Nick O'Leary
ef10ade0cc Improve handling of imported config nodes
Avoid creating unnecessary duplicates of config nodes, whilst
honouring the scope of the any existing node.

Also, 'undo' now removes any added config node
2015-10-02 21:27:30 +01:00
Nick O'Leary
719bb4263e Ensure config nodes are deleted when owning subflow is deleted 2015-10-02 21:27:30 +01:00
Nick O'Leary
b3602b268e Have grunt dev restart on message catalog changes 2015-10-02 21:27:30 +01:00
Nick O'Leary
66ec9bae27 Add warning if HTTP In node is missing path config 2015-10-02 21:27:30 +01:00
Nick O'Leary
d96b6e77c0 Allow config nodes to be scoped to an individual Flow 2015-10-02 21:27:30 +01:00
Nick O'Leary
da64c018ac Make the comms link be more tolerant to temporarily blips 2015-10-02 21:27:30 +01:00
Nick O'Leary
f9fb97adf2 Undo subflow rename not updating corresponding tab/menu labels 2015-10-02 21:27:30 +01:00
Nick O'Leary
8316bc6480 Move config node users tip into body of dialog 2015-10-02 21:27:30 +01:00
Nick O'Leary
08021e039a Better favicon 2015-10-02 21:27:30 +01:00
Dave Conway-Jones
cc6e0937a0 initialise status.text to be blank string if not set.
(and change test to use .text rather than .message)
(not that it matters at this level of test)
2015-10-02 21:27:30 +01:00
Nick O'Leary
c1d694a97c Add birth message to MQTT node 2015-10-02 21:27:30 +01:00
Dave Conway-Jones
fcf4f40c36 add basic status node test 2015-10-02 21:27:30 +01:00
Nick O'Leary
380b03399c Update to latest MQTT module version 2015-10-02 21:27:29 +01:00
Nick O'Leary
c33d02c53f Ensure MQTT node cleansession/keepalive defaults are used 2015-10-02 21:27:29 +01:00
Nick O'Leary
fa5e37993e Update mqtt node options to include will/cleansession/keepalive 2015-10-02 21:27:29 +01:00
Richard Ruston
437b2d506b Update MQTT node to use MQTT.js 1.2 and enable secure connections 2015-10-02 21:27:29 +01:00
Dave Conway-Jones
4ed09f6431 update FA icons to v4.4.0 2015-10-02 21:27:29 +01:00
Nick O'Leary
0b98a6acf8 Ensure catch/status nodes marked changed when edited 2015-10-02 21:27:29 +01:00
Nick O'Leary
1d73c86cb2 Add scope to status node 2015-10-02 21:27:29 +01:00
Nick O'Leary
40fe0f3239 Test Node.status calls through to Flow.handleStatus 2015-10-02 21:27:29 +01:00
Nick O'Leary
d1ea689999 Update catch node help text 2015-10-02 21:27:29 +01:00
Nick O'Leary
a6644ad5ff Add status node 2015-10-02 21:27:29 +01:00
Nick O'Leary
658746d2a3 Allow flow file to be specified with grunt dev
For example: grunt dev --flowFile=flows.json
2015-10-02 21:27:29 +01:00
Nick O'Leary
cbdd4de630 Errors in subflows propagate up to nearest catch node 2015-10-02 21:27:29 +01:00
Nick O'Leary
00c612485b Fix jshint errors 2015-10-02 21:27:29 +01:00
Nick O'Leary
3a6192bf73 Catch node can target specific nodes 2015-10-02 21:27:28 +01:00
Nick O'Leary
c64b5c2850 Add subflow tab image 2015-10-02 21:27:28 +01:00
Nick O'Leary
fdbf079896 Clean up subflow editor
- new appearance of subflow tabs
 - input/output buttons now counters
 - allow multiple input wires to the same node when converting to subflow
 - ensure edit history is propagated properly to instance nodes
2015-10-02 21:27:28 +01:00
Dave Conway-Jones
d1a5395727 update test for JSON parser to include array 2015-10-02 19:46:29 +01:00
Dave Conway-Jones
83a3642c0e Allow JSON node to handle array type 2015-10-02 17:30:23 +01:00
Nick O'Leary
9932d34304 Fix XML parse test
Workaround to https://github.com/Leonidas-from-XIV/node-xml2js/issues/239
2015-09-29 14:39:07 +01:00
Nick O'Leary
7aa37a1976 Bump version 2015-09-29 10:17:45 +01:00
Dave Conway-Jones
fa42fbdab8 Let XML node options be set
let msg.options to set a lot more options if required
2015-09-26 13:47:14 +01:00
Nick O'Leary
caa83ac830 Merge pull request #724 from vielmetti/travis-node-4
Support for Node 4.0.0 and Travis CI testing for same
2015-09-25 23:02:49 +01:00
Nick O'Leary
3963fa9738 Allow a language catalog to be a partial catalog 2015-09-24 21:56:45 +01:00
Edward Vielmetti
005a98d020 Update for node 4 testing.
Changes to .travis.yml
Patch from @dceejay to make a test portable
Patch from @dceejay to correct a case where an int was expected
2015-09-23 15:27:45 -04:00
Dave Conway-Jones
9560dc9408 remove delay spinner upper limit
e.g. 65 secs is perfectly valid…
close #728
2015-09-22 15:06:58 +01:00
Nick O'Leary
4ac9a5edf0 Merge pull request #726 from vielmetti/patch-2
Bump uglify to 2.4.24 to address security advisory
2015-09-22 10:15:54 +01:00
Edward Vielmetti
37e62597ae Bump uglify to 2.4.24 to address security advisory
Noted in https://nodesecurity.io/advisories/uglifyjs_incorrectly_handles_non-boolean_comparisons
2015-09-20 01:21:21 -04:00
Dave Conway-Jones
90bfe378d0 Add mobile category to palette order 2015-09-16 22:35:17 +01:00
Dave Conway-Jones
ce22b494ec Update README to use svg badges
to close #720
Thanks to @scherwi for the tip
2015-09-08 21:47:57 +01:00
Nick O'Leary
f9e0420647 Fix http node method-override nls message id 2015-08-31 16:06:00 +01:00
Dave Conway-Jones
2fe568d9ba Fix TCP node sending data
(it’s for the children)
2015-08-17 17:15:44 +01:00
Dave Conway-Jones
2d4979df4d only set tcp timeout if needs setting. 2015-08-15 22:16:48 +01:00
Dave Conway-Jones
b555b014b8 Update debug test to check lengths... 2015-08-12 21:56:19 +01:00
Dave Conway-Jones
999b888c54 debug nodes - show length of strings, buffers or size of arrays 2015-08-11 19:39:37 +01:00
Nick O'Leary
5193d7bddb Stop sending messages to ws connections that have errored
Fixes #708
2015-07-30 22:09:01 +01:00
Nick O'Leary
6b03379e4e Ensure exclusive conf node is removed on edit cancel
- If an exclusive conf node was added to a node, but the
   node's own edit dialog was canceled, the conf node remained
   but not associated with the node - effectively orphaning it
2015-07-22 22:28:30 +01:00
Nick O'Leary
08d687ad60 Update to travis container builds 2015-07-22 13:06:14 +01:00
Nick O'Leary
eb57089f06 Add flag to disable build check for tests 2015-07-22 11:41:58 +01:00
Nick O'Leary
a76e4fede1 Handle null acceptedLanguages
Closes #704
2015-07-19 22:11:25 +01:00
Nick O'Leary
705d043540 Replace bootstrap popover 2015-07-18 21:27:16 +01:00
Nick O'Leary
5462e251f8 Fix exclusive config node check when type not registered 2015-07-15 13:23:05 +01:00
Nick O'Leary
50788af6ca Add 0.12 to engine statement 2015-07-15 10:50:38 +01:00
Nick O'Leary
1a07c5a329 Bump 0.11.0 2015-07-15 10:48:33 +01:00
Nick O'Leary
9fb81b2814 Permit login with blank scope
Required for the editor, which doesn't know the appropriate scope
for the user logging in. The user will adopt their default permission
scope once logged in.
2015-07-15 10:12:45 +01:00
Dave Conway-Jones
10ad7fbf6e remove spaces before ? in messages 2015-07-14 23:47:58 +01:00
Nick O'Leary
811c4f2630 Ensure locales dir is included in release zip 2015-07-14 20:37:49 +01:00
Dave Conway-Jones
f7e3b0a64f Tiny pixel tweaks to new ui 2015-07-14 20:37:26 +01:00
Nick O'Leary
7d83d76fb3 Merge pull request #702 from node-red/ui-refresh
UI Refresh
2015-07-14 16:11:48 +01:00
Nick O'Leary
d3c41b38f7 More restylin 2015-07-14 15:59:56 +01:00
Nick O'Leary
57d6b16d5c Reset sidebar font size 2015-07-13 23:30:57 +01:00
Nick O'Leary
27aa5ae7db More UI refresh 2015-07-13 23:21:03 +01:00
Nick O'Leary
62e8f564b9 Fix node import error nls message 2015-07-13 16:28:23 +01:00
Nick O'Leary
a1d7bb4208 More restyling - workspace buttons 2015-07-13 15:08:17 +01:00
Nick O'Leary
5d8dae05c4 More ui redesign 2015-07-13 11:26:29 +01:00
Nick O'Leary
6bde07b5a0 Refresh appearance 2015-07-11 23:43:45 +01:00
Nick O'Leary
846ab08661 Allow node modules to declare supported versions of node-red 2015-07-10 21:42:14 +01:00
Nick O'Leary
999cf66b27 Add editor events component and migrate to it 2015-07-10 19:49:53 +01:00
Dave Conway-Jones
60539d890b Fix File node check of msg.payload to close #700
Also add feature to allow creation of directory(ies) if path to file
does not exist.
2015-07-10 14:59:23 +01:00
Nick O'Leary
e5a0f25d94 Keep sidebar tab menu in alphabetical order 2015-07-09 16:48:53 +01:00
Nick O'Leary
fde9d40098 Copy/clone config nodes properly on import/export 2015-07-08 22:12:52 +01:00
Nick O'Leary
f70e9ea076 Ensure RED._ is defined before initialising settings
- remove permissions requirement from locales files so the
   login dialog can be nls'd
2015-07-08 17:08:07 +01:00
Dave Conway-Jones
d0af4aac4d cleanup status on delay node 2015-07-08 15:06:46 +01:00
Dave Conway-Jones
7de3704210 lets exec node pass more than just string as the command payload. 2015-07-08 15:06:08 +01:00
Nick O'Leary
1c33b837b8 Fix delay node labels 2015-07-08 08:04:47 +01:00
Nick O'Leary
95d20d7fba Ensure status messages are strings 2015-07-08 08:02:23 +01:00
Nick O'Leary
90b8806e7c Merge pull request #697 from knolleary/node12
Add node 0.12 to Travis config and fix resulting errors
2015-07-05 23:11:19 +01:00
Nick O'Leary
39df80bf99 Fix exec test to restart helper server before each test 2015-07-05 23:02:10 +01:00
Nick O'Leary
bac4beae03 Fix Function error parsing for node 0.12 format 2015-07-05 22:40:24 +01:00
Nick O'Leary
a7b68c18b5 Bump fs-extra version to fix 0.12 support 2015-07-05 22:10:34 +01:00
Nick O'Leary
ef2360baee Add node 0.12 to Travis config 2015-07-04 22:08:58 +01:00
Nick O'Leary
8716e7e601 Ensure tab minimum size not applied when there is space for all 2015-07-03 20:54:31 +01:00
Nick O'Leary
00c2dae969 Set minimum size on workspace tab 2015-07-03 18:31:37 +01:00
Nick O'Leary
8782bc5896 Ensure sidebar panes are hidden, not removed on change 2015-07-03 11:17:27 +01:00
Nick O'Leary
6359b90352 Add sidebar menu and migrate existing panels to new api 2015-07-03 10:07:40 +01:00
Nick O'Leary
6cfa4976fe Fix nodes.install.installing message id 2015-07-02 13:25:15 +01:00
Nick O'Leary
35cd7cf2b8 Fix tcp status message 2015-07-02 10:56:27 +01:00
Nick O'Leary
b2d7f079b7 Merge pull request #694 from node-red/i18n
Add i18n support
2015-07-02 10:54:22 +01:00
Nick O'Leary
726069bc4b NLS status text in editor not runtime 2015-07-02 10:49:40 +01:00
Nick O'Leary
fbccf01933 Tidy up red.js runtime messages 2015-07-02 10:49:40 +01:00
Nick O'Leary
c9f3c6f4a3 Update trigger node ui 2015-07-02 10:49:40 +01:00
Nick O'Leary
c47da013ff Tidy up of editor i18n messages 2015-07-02 10:49:40 +01:00
Allen Boone
bc76499957 Use core category for custom nodes if core nodes disabled 2015-07-02 10:49:40 +01:00
Allen Boone
24afcff0ea Custom nodes category NLS 2015-07-02 10:49:40 +01:00
Nick O'Leary
6777f24845 Ensure library export dialog is i18n'd 2015-07-02 10:49:40 +01:00
Nick O'Leary
61e0923fc4 Restore when module dependency in red/api/nodes 2015-07-02 10:49:40 +01:00
Nick O'Leary
757caeb9a4 Try to use default palette label nls message if found 2015-07-02 10:49:40 +01:00
Allen Boone
fe9dc6b272 Palette category label NLS for core nodes 2015-07-02 10:49:40 +01:00
Nick O'Leary
24efdbe4da Add missing-type install hint nls messages 2015-07-02 10:49:39 +01:00
Nick O'Leary
9ca102cf81 Ensure error messages are toStringed 2015-07-02 10:49:39 +01:00
Nick O'Leary
48df31d7b7 NLS deprecated node message 2015-07-02 10:49:39 +01:00
Nick O'Leary
539afb1e1d Fix Inject node interval label 2015-07-02 10:49:39 +01:00
Nick O'Leary
bdcba44ca5 Remove moved node messages 2015-07-02 10:49:39 +01:00
Nick O'Leary
99a51b07ac Catch error loop detection nls 2015-07-02 10:49:39 +01:00
Allen Boone
5fbaca75b4 Fixed sidebar id issue 2015-07-02 10:49:39 +01:00
Allen Boone
a6974371b0 Fixed acceptedLanguage typo 2015-07-02 10:49:39 +01:00
Allen Boone
409fa49234 Added missing NLS strings to sidebar and index.mst 2015-07-02 10:49:39 +01:00
Nick O'Leary
9bbd6a70b8 Add namespaced i18n function to node definition 2015-07-02 10:49:39 +01:00
Nick O'Leary
f0b4cb608a Return locale specific node help 2015-07-02 10:49:39 +01:00
Allen Boone
284d7e26d1 Initialize list of supported languages from directories in the locale folder. 2015-07-02 10:49:39 +01:00
Scott Yoshizawa
965c0937ac NLS undo previous change (added require for ./red/log) 2015-07-02 10:49:39 +01:00
Nick O'Leary
d9cf6a4431 Only attempt to load one locale per catalog 2015-07-02 10:49:39 +01:00
Allen Boone
e6ed8ee509 locale exposed to editor 2015-07-02 10:49:39 +01:00
Scott Yoshizawa
2563649b3e NLS /red/nodes
NLS other js files under /red

NLS /red files (changed based on Nick's review)
2015-07-02 10:49:39 +01:00
Nick O'Leary
203bc41b06 Some more node i18n tidy up 2015-07-02 10:49:38 +01:00
Allen Boone
cb1d18c7c8 Fixed problem with RED._ being unavailable to module code 2015-07-02 10:49:38 +01:00
Nick O'Leary
5ea68dafc4 More node i18n tidy ups 2015-07-02 10:49:38 +01:00
Nick O'Leary
68bb8252af Ensure i18n func available to new config nodes 2015-07-02 10:49:38 +01:00
Nick O'Leary
406f742d29 Add jsonlint step to build 2015-07-02 10:49:38 +01:00
Nick O'Leary
5522e57f65 More node i18n tidy-up 2015-07-02 10:49:38 +01:00
Nick O'Leary
94e27dbfc5 Tidy up node i18n 2015-07-02 10:49:38 +01:00
Nick O'Leary
f5fc8f763f Pick up desired language from query string 2015-07-02 10:49:38 +01:00
Nick O'Leary
9058bf615c Fix invalid json in message catalog 2015-07-02 10:49:38 +01:00
Nick O'Leary
9d17137dec Ensure i18n message for Unknown nodes are available 2015-07-02 10:49:38 +01:00
Allen Boone
4a318553f7 Updated editor ui NLS strings 2015-07-02 10:49:38 +01:00
Allen Boone
0017074d38 Updated the notifications and errors to use NLS
removed errant comma
2015-07-02 10:49:36 +01:00
Allen Boone
a39a26fcc2 Converted editor menu to use NLS strings 2015-07-02 10:47:02 +01:00
Scott Yoshizawa
2fe859b111 NLS Core nodes
NLS exec node

NLS function/temple/delay nodes

NLS function/template/delay/trigger/comment nodes

NLS io nodes (mqtt/httpin/websocket/watch/serial)

NLS messages.json for tcpin

NLS io nodes (tcpin & udp half)

NLS io nodes (udp)

NLS logic nodes (switch/change)

NLS logic (range) and parsers (csv&html) nodes

NLS parser nodes (json/xml)

NLS test case update for logic/parsers

NLS analysis and hardware nodes

NLS storage nodes (file/redisout/mongodb) and test

NLS storage node (tail)

NLS social nodes (feedparse/email/irc)

NLS socal node (twitter half change)

NLS social node (twitter) and core node (unknown)
2015-07-02 10:46:57 +01:00
Nick O'Leary
c105b2df37 Add RED._ to test helper 2015-06-29 16:04:00 +01:00
Nick O'Leary
4fb86ab55a Fix !=0 comparison 2015-06-29 16:04:00 +01:00
Nick O'Leary
1ed98a5963 Dont create i18n function for subflows 2015-06-29 16:04:00 +01:00
Nick O'Leary
a4a29ceb3c Handle [html] data-i18n prefixes in config node dialog 2015-06-29 16:04:00 +01:00
Nick O'Leary
6249083431 Extract all core runtime messages 2015-06-29 16:04:00 +01:00
Nick O'Leary
aa18c65fa8 NLS enable the Inject node 2015-06-29 16:03:59 +01:00
Nick O'Leary
a7900940da Expose i18n in editor 2015-06-29 16:03:59 +01:00
Nick O'Leary
008bc98070 Ensure node help is blank if otherwise undefined 2015-06-29 16:03:59 +01:00
Nick O'Leary
0705589cc2 Load base locales in editor 2015-06-29 16:03:59 +01:00
Nick O'Leary
b2caba593f Add locales api endpoint 2015-06-29 16:03:59 +01:00
Nick O'Leary
6d4c64fcd5 i18n enable runtime node files 2015-06-29 16:03:59 +01:00
Nick O'Leary
7d41781fb4 Add initial red/i18n implementation 2015-06-29 16:03:59 +01:00
Nick O'Leary
0760facb77 Add .DS_store to gitignore 2015-06-29 16:02:01 +01:00
Nick O'Leary
a0ce095807 Error generating complete flow library list on OSX
Must use path.join to concatenate paths safely.
2015-06-29 16:00:10 +01:00
Nick O'Leary
df0110913a Remove rogue console.logs 2015-06-25 15:33:39 -07:00
Nick O'Leary
06731374a4 Fix trigger extend behaviour 2015-06-25 13:59:26 -07:00
Dave Conway-Jones
6c8b7c0082 Correct RPi pins labels... and add BCM pins also. 2015-06-24 12:39:27 +01:00
Dave Conway-Jones
93136961b9 make unspecified settings file totally obvious in debug. 2015-06-22 14:17:16 +01:00
Dave Conway-Jones
529a691e1d Add clearTimeout to function node sandbox
(to be a pair with setTimeout…)
2015-06-22 09:07:31 +01:00
Dave Conway-Jones
9f0b3eba47 Add basic exec node test 2015-06-22 08:26:38 +01:00
Nick O'Leary
6d897793cb Ensure node.outputs is always a number
Closes #686
2015-06-19 20:37:12 +01:00
Nick O'Leary
0e12fc6b02 Fix canvas focus issue on FF/IE 2015-06-17 22:52:04 +01:00
Nick O'Leary
c00558ea1b Remove old index.html 2015-06-17 22:46:54 +01:00
Dave Conway-Jones
bacf27a3ca mistook 2015-06-17 22:12:48 +01:00
Dave Conway-Jones
6560ea0630 Delete Dockerfile
mistook
2015-06-17 22:12:27 +01:00
Nick O'Leary
8338231ce5 Drop blank port from comms ws path 2015-06-17 22:09:27 +01:00
Dave Conway-Jones
5813a91244 adjust timing on file tail test
Runs cleaner on Mac
2015-06-17 22:08:53 +01:00
Nick O'Leary
dfd8ab3545 Detect mouse paste in Import nodes dialog 2015-06-17 20:48:56 +01:00
Nick O'Leary
a5b9b949a8 bump to 0.10.11 dev version 2015-06-17 14:58:22 +01:00
Nick O'Leary
72570e4510 Fix scope of knownUnknowns variable 2015-06-17 14:27:49 +01:00
Nick O'Leary
3002aead6b Add better install message on missing nodes 2015-06-17 14:18:47 +01:00
Nick O'Leary
841edbe6fb Ensure release files retain proper chmod status 2015-06-17 13:38:49 +01:00
Nick O'Leary
2b9aca0c56 Add bin to release package 2015-06-16 23:39:33 +01:00
Nick O'Leary
3a17c3ee6d Merge pull request #680 from cpswan/patch-1
https link (rather than git) in dev instructions
2015-06-16 23:38:58 +01:00
Chris Swan
df09252ee0 https link (rather than git) in dev instructions 2015-06-16 23:20:10 +01:00
Nick O'Leary
f51778d417 Bump to 0.10.9 2015-06-16 22:19:31 +01:00
Nick O'Leary
119fc63794 Bump version and dependencies 2015-06-16 21:27:44 +01:00
Nick O'Leary
ee3425d3be Normalise ace editor font size 2015-06-16 20:56:09 +01:00
Nick O'Leary
31c979f30f Add deprecated node list 2015-06-16 15:32:41 +01:00
dceejay
89f2c26cd6 Give our own linked core nodes some leeway on version number
so we can apply fixes without bumping package - which was the whole point of moving them out...
2015-06-16 08:40:39 +01:00
dceejay
0dbf43d0aa Update Gruntfile so only core nodes are linted. 2015-06-15 20:38:40 +01:00
dceejay
8a6d11b191 tiny lint thing in debug node... missing ; 2015-06-15 20:38:09 +01:00
dceejay
d8eb926e2c Move out several core node to node-red-nodes ready for 0.10.8
Update package.json to match.
Part of #668
2015-06-15 20:37:36 +01:00
Nick O'Leary
21d0adbdae Handle null message in catch loop detection 2015-06-15 15:22:51 +01:00
Nick O'Leary
c5fd3a5753 Detect and prevent Catch node loops 2015-06-15 15:09:50 +01:00
Nick O'Leary
eae4e3d983 Add deploy warning for unused config nodes 2015-06-10 14:52:58 +01:00
Nick O'Leary
bb1fe8daef Allow nodesExcludes to specify node module name 2015-06-08 23:17:45 +01:00
Nick O'Leary
c5d8e09b41 Only delete node type from registry if id matches
If a node is moved out of node-red core to an npm installable
package, the first time NR runs after the move it correctly
deletes the node-red version from the registry. However it was
also removing the node constructors registered by the new
npm installed version as it wasn't checking what it was removing
came from the now-removed node.
2015-06-08 16:32:50 +01:00
dceejay
369eae3d92 remove http response function call example from info. (being deprecated) 2015-06-03 22:53:27 +01:00
Nick O'Leary
e2fa457ca2 Minimise amount of node redrawing done during drag 2015-06-03 10:05:31 +01:00
Nick O'Leary
871f764e98 Allow node icon definition to be a function 2015-06-02 22:07:45 +01:00
Nick O'Leary
f8853af902 Enabling metric/audit logging takes precedence over level 2015-06-02 16:23:38 +01:00
Nick O'Leary
4248d20f39 Add RED.util.generateId and ensure HTTP node adds proper id 2015-06-02 15:54:37 +01:00
Nick O'Leary
5cda08e7b0 Update trigger node UI 2015-05-31 20:58:28 +01:00
dceejay
7e9d96ee87 Let email node set a default filename for binary attachment
so it will send "something" if only a buffer arrives.
2015-05-31 20:27:27 +01:00
dceejay
974ac31d33 Hide right sidebar on start if screen narrower than 600px
so at last you can see something that looks like Node-RED
2015-05-31 12:58:42 +01:00
Nick O'Leary
0658b70631 Inject node not parsing 0-23 hour range correctly 2015-05-29 22:28:42 +01:00
Nick O'Leary
53258eeede Restore ability to add nodes by filename 2015-05-27 14:11:11 +01:00
dceejay
4f174308b9 Fix tcp node miscounting bytes, and check if staying connected first. 2015-05-26 20:08:58 +01:00
dceejay
98c9e40349 Add small note re escaping test to inject node. 2015-05-26 20:04:12 +01:00
dceejay
3a4756bd83 let urllib parse proxy url more cleanly in http-request node. 2015-05-23 18:55:11 +01:00
dceejay
6ccb05cb2c http-request node - relax proxy regex check to let userid:password through 2015-05-21 17:45:11 +01:00
dceejay
3c2d32b867 Correct incorrect pwm "tip" info for RPI GPIO node
Closes #648
Thanks @edent
2015-05-21 17:03:59 +01:00
dceejay
956050434f Add no_proxy to http-request node.
also make it support HTTP_PROXY and NO_PROXY (ie uppercase)
2015-05-19 11:07:54 +01:00
dceejay
38ab1550d2 change http request to use http_proxy environment rather than do it ourselves 2015-05-19 10:00:06 +01:00
dceejay
e852d1e57c remove unrequired require from Arduino node 2015-05-19 10:00:06 +01:00
Nick O'Leary
7de0216976 Add audit log entries on API calls
Closes #627
2015-05-14 14:22:56 +01:00
dceejay
911288e695 Arduino node - improved logging and port error handling. 2015-05-13 22:26:01 +01:00
dceejay
72e1f20383 Arduino - ensure port list populated on start,
also allow connect to first found board - by not specifying a port.
2015-05-13 21:59:15 +01:00
Nick O'Leary
d28a6eaf9d Add httpNodeMiddleware option
Closes #631

Enables custom middleware to be inserted in front of all HTTP In
nodes.
2015-05-13 21:25:37 +01:00
dceejay
17f3366556 Adds proxy support to http node - via settings.js 2015-05-13 13:54:47 +01:00
Nick O'Leary
0bef04ae0a Set NODE_ENV in grunt dev task to serve non-minified assets 2015-05-11 20:24:15 +01:00
dceejay
f11b906fd9 Websocket - fix broken test (or rather - fix code to pass test) 2015-05-10 10:00:44 +01:00
dceejay
518358d9dc Websocket - add reconnect capability when running as a client.
to close #643

Also adds node.status to nodes.
2015-05-10 00:12:52 +01:00
dceejay
5ffde21d83 revert change to editor change detector, and redo function node valid
code "flag" to report as non-boolean.
2015-05-08 15:31:48 +01:00
dceejay
052302b3e7 actually set valid to be false in function so .toString will work... 2015-05-07 22:02:46 +01:00
Nick O'Leary
fe1ce21114 toString values before checking for changes 2015-05-07 21:17:06 +01:00
Nick O'Leary
ce5c9da107 Ensure ace edit history is reset after initialisation 2015-05-07 21:12:46 +01:00
dceejay
cf25b2866e Allow http to accept delete properly, and put, options etc. 2015-05-07 16:45:44 +01:00
dceejay
07fd5a5f5f function node was marking changed even on no change. 2015-05-07 16:44:55 +01:00
Nick O'Leary
913fdac671 Add support for exclusive config nodes 2015-05-06 11:08:01 +01:00
Nick O'Leary
7dc838dea6 Fix click on debug message to reveal source node 2015-05-05 22:00:47 +01:00
Nick O'Leary
7112fd2a22 Partial deploy containing deleted subflow throws error 2015-05-05 13:53:40 +01:00
dceejay
56e8c143dd CONTRIBUTING - remove link to specific Issues (so we can use this file
for all the projects)
2015-05-05 12:50:46 +01:00
dceejay
7b4cbbe816 Add try catch to exec node stdout if utf8 check fails 2015-05-05 12:50:46 +01:00
Nick O'Leary
8f8ee4662d Initialise checkboxes in config editor for new nodes 2015-05-05 00:03:35 +01:00
Nick O'Leary
86013c7db4 Ensure node.credentials exists for nodes with registered creds
Fixes #639
2015-05-04 23:28:55 +01:00
Nick O'Leary
01aa3324f8 Fix lint error in user.js 2015-05-03 22:28:03 +01:00
Nick O'Leary
b9cfeee965 Navigate and submit login dialog with Enter key 2015-05-03 22:23:30 +01:00
Nick O'Leary
b3684a70b5 Handle Buffer payloads in HTTP Response node 2015-05-02 22:20:46 +01:00
Nick O'Leary
51fce9343b Ensure errors in node.receive are handled 2015-05-02 22:15:33 +01:00
Nick O'Leary
0c5c3448d0 Merge pull request #633 from scott1y/Issue#626
Added the capability to register custom loggers (for Issue #626)
2015-05-02 21:53:07 +01:00
Scott Yoshizawa
deaef3ab86 Corrected based on knolleary's comments. 2015-05-01 09:37:23 -04:00
Nick O'Leary
a443491c0c Merge pull request #630 from lostinthestory/swagger-gen
Added support for swagger doc to HTTP-In
2015-05-01 09:32:57 +01:00
Scott Yoshizawa
276d893198 Added the capability to register custom loggers (for Issue #626) 2015-04-30 17:01:22 -04:00
Nick O'Leary
653d0e71e4 Add meta tag for IE edge compatibility 2015-04-28 14:25:41 +01:00
Nick O'Leary
faa7d948a7 Update MQTT Out node status if already connected 2015-04-27 20:08:00 +01:00
Nick O'Leary
771342989e HTTP Request - handle null url
Fixes #632
2015-04-26 08:50:42 +01:00
Cody Walker
e9ce519e4b Added support for swagger doc to HTTP-In 2015-04-24 13:53:38 -05:00
Nick O'Leary
c016b102eb Add async error handler to UDP out node
Fixes #629
2015-04-24 11:17:18 +01:00
Nick O'Leary
0583c60837 Editor link filter failing for src_port == 0
Fixes #621
2015-04-22 22:53:21 +01:00
Nick O'Leary
1c1a85dcef editorTheme: allow header logo/title to be a link 2015-04-22 14:03:42 +01:00
Nick O'Leary
c71e76335b Serial Out not appending character
Fixes #622
2015-04-21 09:43:00 +01:00
Nick O'Leary
c1a32c4eb9 Merge pull request #620 from drwoods/master
fix 3 localfilesystem tests failing on Windows
2015-04-20 15:27:38 +01:00
drwoods
9ad1f769d3 localfilesystem tests failing on Windows 2015-04-20 10:13:00 -04:00
Nick O'Leary
87f8fd34b8 Ensure full deploy is visually selected by default 2015-04-20 11:17:27 +01:00
dceejay
e206d2919e More defensive on closing tcp connections,
and tidy up some lint
2015-04-19 12:13:45 +01:00
dceejay
9d809aa2ba Point Grunt to use external jshintrc 2015-04-16 11:53:39 +01:00
dceejay
8f744794e4 push opinionated .jshintrc - matches Grunt build. for starters. 2015-04-16 10:22:12 +01:00
Nick O'Leary
78ab4217be Arduino pin values should be strings not numbers 2015-04-15 09:34:03 +01:00
Nick O'Leary
d090df94c5 Arduino output - ensure string/number payloads handled
A change to tighten the type checking meant passing a string
'0' or '1' no longer matched the tests for numeric 0 or 1.
2015-04-14 23:14:13 +01:00
Nick O'Leary
937f26da41 Merge pull request #606 from drwoods/master
Ignore Eclipse project files and fix some jshint warnings
2015-04-14 21:34:23 +01:00
drwoods
98e3ff014e ignore Eclipse files and resolve some Eclipse JSHint warnings
squashed 4 commits into 1
2015-04-14 14:17:08 -04:00
dceejay
6f84526364 Remove pre-req for mkdirp package.
(fs-extra has all the features needed already)
2015-04-14 18:41:48 +01:00
dceejay
105d38c885 MQTT node - don't report missing topic if payload is missing... 2015-04-14 18:39:42 +01:00
dceejay
d7bdcd69fc fix exec missing addpayload,
improve switch null test (to include null object)
check mqtt has payload before sending
2015-04-14 17:15:56 +01:00
Nick O'Leary
87e537da90 Merge pull request #611 from node-red/themes
Editor Themes
2015-04-13 22:51:52 +01:00
Nick O'Leary
8f16695f06 Add theme tests 2015-04-13 22:15:15 +01:00
Nick O'Leary
8403f6291f Tidy deploy button css 2015-04-13 21:50:40 +01:00
Nick O'Leary
5af6ac3e80 Rename menu ids to be logically consistent 2015-04-13 16:48:38 +01:00
Nick O'Leary
0d557094b2 Move help customisation under menu settings 2015-04-13 15:32:11 +01:00
Nick O'Leary
a2aa78afd4 Add main menu customisation 2015-04-13 13:55:17 +01:00
Nick O'Leary
b0de8abb63 Customise help link label/url 2015-04-13 11:35:52 +01:00
Nick O'Leary
6ff540ed08 Customise login image 2015-04-13 10:37:30 +01:00
Nick O'Leary
2b8ed9850b Pass deployButton and userMenu theme options to ui 2015-04-13 09:48:49 +01:00
Nick O'Leary
dcd579b5e3 Some scss tidy up 2015-04-13 00:11:32 +01:00
Nick O'Leary
c9d2d301aa Add editorTheme setting 2015-04-13 00:11:11 +01:00
Nick O'Leary
1aaef598a5 Concatenate vendor js/css where possible 2015-04-13 00:10:10 +01:00
dceejay
73d1f3d0e8 Expose rest of email node header fields. 2015-04-12 00:46:03 +01:00
Nick O'Leary
e369ded6c5 Allow deploy button to be customised 2015-04-11 22:51:00 +01:00
dceejay
269846c587 Catch bad folder error in email node 2015-04-11 19:24:32 +01:00
dceejay
8dc98420db handle pure plain text messages in email node. 2015-04-11 16:48:50 +01:00
dceejay
1014abe92f Fix email node repeat send, add to, cc, bcc fields, and ability to select inbox. 2015-04-11 16:09:13 +01:00
Nick O'Leary
6927f10f8f Fix login image path 2015-04-10 15:39:29 +01:00
Nick O'Leary
49d3a7190a Update nodemonignore/watch rules 2015-04-09 22:18:37 +01:00
Nick O'Leary
a2e65b0018 Prepend copyright to built editor files 2015-04-09 21:12:39 +01:00
Nick O'Leary
f48ee01a03 Ensure MQTT nodes unsubscribe before disconnect
Fixes #609

Needed for partial deployment - the nodes assumed the
connection would always be closed when a deploy occurs.
2015-04-09 20:10:34 +01:00
Nick O'Leary
0e926c566b Add missing header scss 2015-04-09 17:26:11 +01:00
Nick O'Leary
d2c4c2c34c Split css into individual scss files 2015-04-09 14:46:29 +01:00
Nick O'Leary
c2253d1e25 Merge pull request #608 from node-red/build2
Add build process to grunt
2015-04-09 13:02:01 +01:00
Nick O'Leary
eae16b6e8c Add tests for build check 2015-04-09 12:13:46 +01:00
Nick O'Leary
868ae5b5dd Add .dist to gitignore 2015-04-09 11:37:16 +01:00
Nick O'Leary
1406503e10 Add build info to README 2015-04-09 10:22:05 +01:00
Nick O'Leary
9ca9d88546 Drop Node 0.8 from travis build due to devDependencie issues 2015-04-09 10:22:05 +01:00
Nick O'Leary
203d3f672c Add build step to Grunt file 2015-04-09 10:22:05 +01:00
dceejay
698b2688f6 Add port, ssl and allow self signed certs to IRC node 2015-04-09 09:55:34 +01:00
dceejay
be1620dd07 Fix watch node to stat file sizes ok
(and also not to when file missing)
2015-04-08 21:43:44 +01:00
Nick O'Leary
e1f0969957 Add dedicated route for editor index.html 2015-04-08 21:29:55 +01:00
Nick O'Leary
e1dd8cf2ab Restore node order in palette following async changes
The move to async loading of node files led to them appearing
out of order in the palette.
2015-04-08 20:17:24 +01:00
dceejay
8ee90777ee Move serialport (and irc) to optional dependancies so installs ok in more places.
(albeit without serialport etc... - but not many clouds have serialports)
2015-04-08 09:55:48 +01:00
Nick O'Leary
2fe9c1e55f Change node config load to be async 2015-04-07 23:46:52 +01:00
Nick O'Leary
9dd7e2e43d Refactor registry structure
Splits registry up into smaller components.

Unit tests still drive api via registry/index_spec - still
need to split them up into the currently blank _spec files
2015-04-07 16:02:15 +01:00
Nick O'Leary
5efbdf5d04 Revert removal of flow storage api
Whilst we know with the file system storage inplementation
getLibraryEntry is a suitable replacement for getFlow, this
may not be the case with other implementations.

The storage code uses the deprecated functions if they are
present - so the core code should call them and let the storage
layer decide what it calls.
2015-04-05 20:54:11 +01:00
dceejay
5be3472413 For some reason http request node icon was aligned right,
inconsistent with most other "function" nodes...
2015-04-05 17:57:06 +01:00
dceejay
a9a0953653 Slide timing window to left for trigger node test. 2015-04-04 22:27:25 +01:00
Nick O'Leary
d4ac4c44d0 Fix library test for deprecated storage api 2015-04-04 19:33:37 +01:00
Nick O'Leary
f459ff8ad0 Remove use of deprecated storage api 2015-04-04 19:25:07 +01:00
Nick O'Leary
b96ea36b70 Deprecate getAllFlows/getFlow/saveFlow storage functions
They were specialised versions of get/saveLibraryEntry that
complicated the interface.

This change removes them from localfilesystem, but the top
level module checks for their existence and uses them if
they are there - for backwards compatibility.
2015-04-03 23:05:56 +01:00
Nick O'Leary
e543cc0fed Log settings file in use on start up 2015-04-03 23:05:15 +01:00
Nick O'Leary
0b1b4df210 Update README / Remove INSTALL.md 2015-04-02 21:19:57 +01:00
Nick O'Leary
e59ffb0b19 Bump to dev version 0.10.7 2015-04-01 10:48:57 +01:00
Nick O'Leary
120c8f2c28 Bump version 0.10.6 2015-04-01 10:28:04 +01:00
Nick O'Leary
fbfc5c8a2d Add error codes to api responses 2015-03-31 22:29:42 +01:00
dceejay
31b018c80e Missed closing brace in email node fix 2015-03-31 16:39:00 +01:00
dceejay
255d708fb6 updates to serial, watch, websocket, udp, twitter, email to handle no payload. 2015-03-31 09:21:11 +01:00
dceejay
78d1da5fbc Updates to sentiment, exec and range to handle missing payload properties 2015-03-31 08:35:56 +01:00
dceejay
9c22a770ef remove superfluous console.log from debug node 2015-03-30 21:59:54 +01:00
Nick O'Leary
b201828236 Remove 'loaded' property from external node info object
and fix everything that doing this broke
2015-03-30 21:49:20 +01:00
Nick O'Leary
2a8a885271 Standardise API error response format 2015-03-30 14:16:04 +01:00
Nick O'Leary
7adefd6ee0 Add access_token expiry 2015-03-30 14:14:32 +01:00
Nick O'Leary
f967a5ecdc Fix auth on comms link and for anon user
The move to honour scope level of token broke the comms link
checking as well as the permissions checking for anon users.
2015-03-29 22:27:07 +01:00
Nick O'Leary
c8d6dc2531 Auth permission should honour the token scope 2015-03-29 21:59:48 +01:00
Nick O'Leary
216b5fba7a Increment subflow name on import of duplicate 2015-03-28 22:12:18 +00:00
Nick O'Leary
f4ec9a72d5 Increase tab max-width 2015-03-28 22:08:39 +00:00
Nick O'Leary
cf0c2825eb Expand palette category when first entry added 2015-03-28 21:46:27 +00:00
Nick O'Leary
be46c419dc Center palette label whilst being dragged 2015-03-26 20:08:25 +00:00
Nick O'Leary
62c68d06fe Merge pull request #598 from dceejay/dcjtests
new tests for sentiment, file and csv nodes
2015-03-26 16:57:04 +00:00
Nick O'Leary
4f4d8419bc Nudge palette labels to rebalance them 2015-03-26 16:55:55 +00:00
dceejay
16e17954b4 add try catch to helper shutdown,
tiny fixes for exec and trigger based on tests
2015-03-26 15:02:08 +00:00
Nick O'Leary
cc1d080a5a Remove add/removeNode by filename api
Only support add/remove by module name
2015-03-26 11:39:35 +00:00
Nick O'Leary
dd7f4f6752 Filter loaded property from /nodes endpoint 2015-03-26 11:38:51 +00:00
Nick O'Leary
9daeba02b5 Flow.registerType should indicate if type was missing or not 2015-03-26 11:37:24 +00:00
dceejay
8a96dbd121 New tests for Trigger, catch and unknown nodes 2015-03-25 21:58:26 +00:00
Nick O'Leary
2a57d0b6d0 auth/login should return empty object when insecure 2015-03-25 20:33:29 +00:00
dceejay
8a5c1bade5 new tests for sentiment, file and csv
(inc a bugfix for csv :-)

tweka of 0.8 ?

temp remove buffer should equall test from file node test

comment out failing test in file node (0.8 specific fail...)

stagger multiple writes slightly in file test
2015-03-25 14:58:57 +00:00
dceejay
fcc6943f98 Extra tests for html, xml, json and tail nodes
(and some consistent passing of missing payloads)
2015-03-24 17:43:47 +00:00
dceejay
72a9de058d tests for defaults in switch, change and range nodes. 2015-03-24 17:35:54 +00:00
Nick O'Leary
8748be28b7 Bump to 0.10.5 2015-03-23 10:56:14 +00:00
Nick O'Leary
20bdea7ae0 Increase registry test coverage 2015-03-22 22:54:52 +00:00
Nick O'Leary
e19b8d35a9 Modules not properly removed from config.json 2015-03-22 21:48:12 +00:00
Nick O'Leary
81df74dfc8 Server not waiting for settings to load 2015-03-22 20:55:38 +00:00
Nick O'Leary
153fa7478f Increase flows test coverage 2015-03-22 20:12:10 +00:00
Nick O'Leary
500e9a4010 Increase localfilesystem test coverage 2015-03-22 17:40:42 +00:00
dceejay
5352fc87ee add extra tests to debug, delay & template 2015-03-22 09:38:42 +00:00
dceejay
f07fd64ffb Make trigger have sensible defaults when dragged on. 2015-03-21 19:27:39 +00:00
Nick O'Leary
36f299c031 Improve core test coverage 2015-03-21 17:42:06 +00:00
Nick O'Leary
78cf310c58 Collapse palette category when emptied 2015-03-20 23:12:52 +00:00
Nick O'Leary
18a3d71024 Double-click on subflow palette node to open flow 2015-03-20 23:11:24 +00:00
Nick O'Leary
26db1048f9 Remove dialog close button via css not jquery 2015-03-20 23:11:03 +00:00
Nick O'Leary
b61a250d58 Debug message formatting mangling brackets 2015-03-20 22:09:58 +00:00
Nick O'Leary
1d10eba0cc Propagate changed flag to parent subflow 2015-03-20 21:20:04 +00:00
Nick O'Leary
35042132fa Make node-info properties collapsable in sidebar 2015-03-20 21:13:00 +00:00
Nick O'Leary
57c049b49f Palette filter on label as well as id 2015-03-20 11:40:34 +00:00
Nick O'Leary
7a0ce0c957 Update style of nodes in palette to match workspace 2015-03-20 11:37:47 +00:00
Nick O'Leary
eb4cadb0b5 Propagate valid flag to parent subflows 2015-03-19 23:11:55 +00:00
Nick O'Leary
ac0ca083c0 Import of subflow loses certain internal wires
Wires between subflow inputs and outputs are getting lost when
JSON is imported.
2015-03-19 22:59:09 +00:00
dceejay
9afb4a9315 reverse overide behaviour on file, http and email. Node properties now
have priority. Warn user if msg.property tries to override. 
Warning should  be removed at next major verion bump.
2015-03-19 21:25:43 +00:00
dceejay
df065e94b7 add extra tests to user_spec to test some else conditions. 2015-03-19 19:57:41 +00:00
dceejay
a9789697e7 add bcrypt as optional dependency to speed up Pi,
but not force compile on Windows.
Fix to close Issue #585
2015-03-19 11:36:48 +00:00
Nick O'Leary
2d91be8814 Disable node buttons in subflow view
Closes #592
2015-03-19 11:19:44 +00:00
Nick O'Leary
5c58b0c2f4 Revalidate all config node users after edit 2015-03-19 10:49:56 +00:00
Nick O'Leary
f0139f9808 Add multi-rule support to Change node 2015-03-18 16:20:50 +00:00
dceejay
5610a3184e small spelling mistake in deploy.js 2015-03-17 15:38:31 +00:00
Nick O'Leary
b202c73708 Allow access_token to be provided in url 2015-03-17 15:15:24 +00:00
Nick O'Leary
dd4cec84bf Add node.send/on to Function node 2015-03-17 13:40:12 +00:00
Nick O'Leary
a1dac1e290 Resize ace editor on dialog-open 2015-03-17 13:36:50 +00:00
Nick O'Leary
e199d6725e Test helper - initialise credentials with express instance 2015-03-16 21:57:31 +00:00
dceejay
aef38b945d Change http request node info to suggest {{{ rather than {{ to supress
html escape when forming urls from mustache.
2015-03-16 20:22:25 +00:00
dceejay
cd5eac2cbb Add type and size reporting to the file watch node. 2015-03-16 20:21:05 +00:00
dceejay
8fea443e71 Add error msg to rpi node 2015-03-16 17:09:13 +00:00
dceejay
2a47951e46 make sure MQTT msg has a topic 2015-03-16 17:07:46 +00:00
dceejay
5234fda266 Tidy up arduino node slightly and update settings example to work nicer
with JohnnyFive
2015-03-16 17:07:17 +00:00
Nick O'Leary
e63067cd9f Add OS X command symbol to keyboard dialog 2015-03-16 15:40:25 +00:00
Nick O'Leary
be61cf6a88 Add node.error handling to core nodes 2015-03-16 13:58:01 +00:00
Nick O'Leary
5efc89d514 Warn when leaving editor with undeployed changes 2015-03-15 23:48:02 +00:00
Nick O'Leary
9c104faff3 Use RED.nodes.filterLinks in pref to RED.nodes.eachLink 2015-03-15 23:41:16 +00:00
Nick O'Leary
cf8fe16b09 Remove direct access to RED.nodes.nodes/links
- Adds RED.nodes.filterNodes and RED.nodes.filterLinks for
   doing simply queries to find elements that match a criteria
2015-03-15 23:31:38 +00:00
Nick O'Leary
71db193675 Move user menu creation to user module 2015-03-15 23:07:57 +00:00
Nick O'Leary
9952d9451e Move deploy menu/action to own module 2015-03-15 22:54:55 +00:00
Nick O'Leary
fb738ad9fa Track dirty state in RED.nodes not RED.view
- add 'change' event on RED.nodes for tracking dirty state change
2015-03-15 21:54:36 +00:00
Nick O'Leary
46f2f752b0 Node on deleted tab not removed on partial deploy 2015-03-15 21:27:11 +00:00
Nick O'Leary
42730b8fce Move external drag/drop to clipboard module 2015-03-14 22:53:31 +00:00
Nick O'Leary
1c2be579d9 Move keyboard shortcut dialog to keyboard module 2015-03-14 22:16:07 +00:00
Nick O'Leary
51e891ff88 Move sessionStorageModule into main storageModule
Fixes #586

 - add get/saveSessions to main storage module
 - handle storage modules without those functions
 - store .session file in userDir
2015-03-13 23:37:59 +00:00
Nick O'Leary
731efe1c01 Add credential extract unit tests 2015-03-13 21:26:50 +00:00
Nick O'Leary
f77dd06e65 Partial deploy with missing type breaks flow diff
Another refactor of Flow lifecycle.
 - diffFlow made a private static function
 - applyConfig now diffConfig - which returns a diff object that
   can be passed to .stop/.start to be properly applied
2015-03-13 17:54:58 +00:00
Nick O'Leary
af20f3df64 Partial deploy with missing node type breaks deploy 2015-03-13 13:15:20 +00:00
Nick O'Leary
4078212089 Split cliboard and workspaces out of editor view 2015-03-12 23:38:37 +00:00
Nick O'Leary
7bdb3181e2 Don't reload page on enter in subflow dialog 2015-03-12 17:23:17 +00:00
Nick O'Leary
933608aec1 Disable buttons of nodes with undeployed changes 2015-03-12 13:58:53 +00:00
Nick O'Leary
1d7f06bbba Redraw unselected link when joining nodes starts 2015-03-12 13:35:39 +00:00
Nick O'Leary
f26cadab7f Minimise link redrawing 2015-03-12 13:26:31 +00:00
Nick O'Leary
eacf41a4f6 Minimise filtering of nodes on redraw 2015-03-12 11:21:05 +00:00
Nick O'Leary
ab3e64271b Move subflow handling to own module 2015-03-12 00:09:30 +00:00
Nick O'Leary
e26ea14104 Undo subflow rename not reflected in palette 2015-03-12 00:09:30 +00:00
dceejay
3967e23828 change settings to replace commented out arduino library
with johnny-five to match example in docs to make life easier.
2015-03-11 17:49:06 +00:00
dceejay
1f8c6f87c9 add don't add payload to exec node
to close #578
2015-03-11 17:43:42 +00:00
Nick O'Leary
f6203fe60a Allow a config-node be marked as not required 2015-03-09 20:42:23 +00:00
Nick O'Leary
06bf710515 Improve editor dialog auto-sizing 2015-03-09 20:41:57 +00:00
Nick O'Leary
0f3cc3196c Log-in window incorrect
fixes #583
2015-03-09 20:02:13 +00:00
dceejay
4403a00651 Revert change to http until we fully deprecate msg/node priorities
Fix to close #582
2015-03-08 18:36:35 +00:00
dceejay
9c46feb22b more tests for log and Node 2015-03-08 16:53:48 +00:00
dceejay
10277aa956 revert/redo tests for api/index, log and Node_spec 2015-03-08 15:26:47 +00:00
Nick O'Leary
ff093d98c6 Merge pull request #576 from Belphemur/function-logger
Adding an Object Node to the sandbox of a function node
2015-03-07 23:37:00 +00:00
dceejay
acc0e0875b few more tests for permissions and strategies
reset log flags at end of log test
2015-03-07 13:22:21 +00:00
dceejay
69f85bd688 boost api index, nodes index and nodes Node test coverage 2015-03-06 22:58:30 +00:00
dceejay
910d983b82 More tests for red, log, info and util. 2015-03-06 14:14:47 +00:00
dceejay
128415bc9e back out some changes to red_spec test while investigate fail on v0.8 2015-03-06 10:51:57 +00:00
dceejay
082ce798d8 slightly enhance test coverage for info and log and settings. 2015-03-06 10:18:33 +00:00
dceejay
234abd82a2 Move away from __defineGetter syntax, in red and server
Bump test coverage forwards a bit
2015-03-06 10:17:00 +00:00
dceejay
3cbc1bbb1b Add ipv6 support to udp node 2015-03-05 13:07:38 +00:00
Antoine Aflalo
0ed9f6cc4f Adding an Object node to the sandbox of a function node
Permit the user of the sandbox to log using the Function Node.
Test provided and working.

Fix Display warning message in the debug log
Before they were displayed as error instead of warning
2015-03-05 09:50:11 +02:00
Nick O'Leary
10b092a9a7 Ignore 'type' when detecting config nodes 2015-03-04 22:38:53 +00:00
Nick O'Leary
444a897410 Resort to NODE_RED_HOME if User HOME not found
Fixes #575
2015-03-04 21:47:38 +00:00
Nick O'Leary
e013afb053 Import/Export dialogs cannot be cancelled
Fixes #577
2015-03-04 21:44:14 +00:00
Nick O'Leary
34364f5627 Allow node to register multiple close handlers
Closes #573
2015-03-04 21:42:11 +00:00
Nick O'Leary
cef378d820 Add selection-changed event on RED.view 2015-03-04 13:22:32 +00:00
Nick O'Leary
a27353c166 Add onadd/onremove event handlers to node definitions 2015-03-04 13:22:29 +00:00
dceejay
bbd197c71d Note in info that MQTT node can support binary. 2015-03-03 15:56:42 +00:00
Nick O'Leary
fabf013714 Allow the main view hold keyboard focus 2015-03-02 22:55:34 +00:00
dceejay
81dcfecb4e Catch very early exit null pointer when ctrl-c hit during startup. 2015-03-02 17:32:22 +00:00
Nick O'Leary
971a62ebc9 Merge pull request #571 from knolleary/errnode
Add Catch node
2015-02-26 22:58:03 +00:00
Nick O'Leary
04f2c92ba6 Add subflow/catch node tests 2015-02-26 22:40:54 +00:00
Nick O'Leary
00d0f8cfc7 Invoke catch node only when msg is provided 2015-02-26 22:40:54 +00:00
Nick O'Leary
c5c404ea05 Update catch node icon and help text 2015-02-26 22:40:54 +00:00
Nick O'Leary
c80a44933c Add errorHandler tests 2015-02-26 22:40:54 +00:00
Nick O'Leary
5599b999ec Add catch node 2015-02-26 22:40:53 +00:00
Nick O'Leary
172cbdaa84 Merge pull request #574 from knolleary/editor
Migrate to ACE editor
2015-02-26 22:27:02 +00:00
Nick O'Leary
a3c4f12764 Bump 0.10.4 2015-02-26 21:39:30 +00:00
Nick O'Leary
bf1cd457cd Add RED.editor.createEditor utility function 2015-02-26 21:29:56 +00:00
dceejay
8af50a51ba add validation triangle to ace function editor on errors 2015-02-26 17:08:50 +00:00
Nick O'Leary
ddf31e87b2 Update core nodes to use ACE editor 2015-02-26 17:08:50 +00:00
Nick O'Leary
5adbc012f3 Add ACE editor 2015-02-26 17:08:50 +00:00
Nick O'Leary
393fc349b9 Fix saving for node-library content 2015-02-26 17:08:20 +00:00
dceejay
dfed4963ed fix big labelling issue with Pi + pins ... 2015-02-26 14:18:49 +00:00
dceejay
131adb6f4e let email node mark mail as read
(for the ones it reads)
2015-02-26 14:18:49 +00:00
dceejay
a8b3cbb683 remove unecessary require from serial node 2015-02-26 14:18:49 +00:00
Nick O'Leary
e97d5c7354 Rename node-red wrapper to node-red-pi 2015-02-26 13:41:01 +00:00
Nick O'Leary
061c44f958 Move shebang to the correct red.js 2015-02-26 13:24:38 +00:00
Nick O'Leary
f5d8433341 Add node-red-pi command 2015-02-26 11:38:05 +00:00
Nick O'Leary
f78a71e8ed Load flows file from userDir when appropriate 2015-02-26 11:30:20 +00:00
Nick O'Leary
4d48c72146 Add node-red script
Needed to allow arguments to be passed to the node
engine, which isn't possible if red.js is run with
a #! line.
2015-02-25 22:37:56 +00:00
dceejay
71ff828947 Tidy up all console.log util.log from core nodes.
Try to make log,warn,error more consistent behaviour.

Especially make sure any existing catches produce errors
2015-02-25 19:10:59 +00:00
Nick O'Leary
b6245bdef7 Remove console.log from XML test spec 2015-02-25 14:25:37 +00:00
Nick O'Leary
ce1cd1ab9c Change default data dir
Changes the default location for user data to $HOME/.node-red.
2015-02-25 14:25:01 +00:00
dceejay
54b0debb3b Re-order palette categories, move subflows to top of list. 2015-02-25 10:10:10 +00:00
Nick O'Leary
1876b56022 Fix jshint error 2015-02-24 23:06:07 +00:00
Nick O'Leary
d148a23ed6 Handle config nodes appearing out of order in flow
The editor ensures config nodes appear first in the flow file. The
code in the runtime and editor assumes this to be the case, so that
when a node is instantiated that requires a config node, it can assume
the config node already exists.

This change allows a config node to appear in the flow file after a
node that wants to use it. In both the editor and runtime, the code
now scans for config nodes and handles them first.
2015-02-24 23:04:55 +00:00
dceejay
049a5f1be6 revert small whitespace change to server start messages. 2015-02-24 22:22:16 +00:00
Nick O'Leary
f3880b7601 Fix credential pruning and start/stop log messages 2015-02-24 22:03:04 +00:00
dceejay
fbb45a8961 make udp node consistent with it's info.... (re params passed out) 2015-02-24 13:22:48 +00:00
dceejay
b8c460b825 pass original url request through http request node
(will be useful when we handle errors... ;-)
2015-02-24 13:20:33 +00:00
Nick O'Leary
63191bc641 Bump 0.10.3 2015-02-23 22:18:14 +00:00
dceejay
9f012c261a Make parser nodes errors actual errors.
(more cleanup will probably be necessary - but this is a start)
2015-02-23 19:30:29 +00:00
dceejay
dc7701ad70 Add node.js version to startup log msgs for debug. 2015-02-23 19:30:29 +00:00
Nick O'Leary
e8666827e6 Restore httpAdminAuth with deprecation warning 2015-02-23 11:39:38 +00:00
Nick O'Leary
5e2c51a741 Handle deleted tab when diffing flows 2015-02-22 22:59:26 +00:00
dceejay
51421ce657 clone msg more correctly for CSV node multiple line output 2015-02-22 21:57:06 +00:00
Nick O'Leary
339e6039e1 Add engine restriction against node 0.12 2015-02-22 21:28:28 +00:00
dceejay
43054906dc preserve other msg properties when passing through CSV node 2015-02-22 19:23:36 +00:00
Nick O'Leary
57dedcf816 Add files to .gitignore 2015-02-21 00:28:29 +00:00
Nick O'Leary
4dc21c43fa Handle strings for limit/skip args to mongo node 2015-02-20 20:02:25 +00:00
Nick O'Leary
1c86908b90 Bump 0.10.2 2015-02-20 10:07:10 +00:00
Nick O'Leary
9b26973883 Ensure activeWorkspace is set when a flow contains no tabs 2015-02-20 10:05:42 +00:00
Nick O'Leary
2585e983a5 Add test-* grunt tasks 2015-02-15 23:35:24 +00:00
Nick O'Leary
a808cb44c2 Merge pull request #563 from emiloberg/master
Fixes bug that prevented unsubscribe from WebSockets, browser side. Fixes node-red/node-red/#562
2015-02-15 21:54:48 +00:00
Nick O'Leary
edd9d2cb9c Fix Inject node handling of day selection
Fixes #564
2015-02-15 21:53:14 +00:00
Emil Öberg
33d24f79ce Fixes bug that prevented unsubscribe from WebSockets, browser side. Fixes node-red/node-red/#562 2015-02-14 22:25:25 +01:00
dceejay
cc095e4edf edit HTML node info to remove ref to jQuery. Link to CSSselect instead. 2015-02-14 19:06:35 +00:00
dceejay
07641d57ab recorrect debug logging level colour class names so sidebar is as-was.
in light of new logging levels
2015-02-14 12:14:06 +00:00
dceejay
5643c51507 Let debug node show "topic" correctly for errors in functions. 2015-02-13 21:14:54 +00:00
Nick O'Leary
ad6254c0b8 Add oneditdelete handler for config nodes
Already had the undocumented ondelete handler. Adding
this to be consistent with the other oneditXYZ handlers.
2015-02-13 11:20:08 +00:00
Nick O'Leary
d6ca421d59 Remove unecessary argument to oneditcancel 2015-02-13 11:05:45 +00:00
Nick O'Leary
79bd01f810 Remove X button on dialogs
Fixes #561

Also, oneditcancel not being honoured for regular nodes, only config nodes
2015-02-13 10:06:28 +00:00
Nick O'Leary
e357352240 Tidy up info tab handling of subflows and comments 2015-02-10 21:29:27 +00:00
dceejay
0accfade02 catch internal subflow info error in tab-info... 2015-02-10 20:15:00 +00:00
dceejay
00b7afe3ae spelling pedant alert in debug node... its not it's 2015-02-10 20:14:33 +00:00
dceejay
2e76541fa5 Update Debug node test to "unbreak" build... oops 2015-02-10 17:31:26 +00:00
dceejay
e2911078e3 tidy up tab-info so subflows show more useful information
(was broken before but no-one noticed ;-)
(and reorder fields in HTTP and XML nodes so name comes out first - ocd)
2015-02-10 16:56:07 +00:00
dceejay
c6157687c9 Move payload type label in Debug window to meta data row
rather than (object) etc at start of actual payload.
2015-02-10 16:56:07 +00:00
Nick O'Leary
87a1818486 Add missing FA font file 2015-02-09 09:48:31 +00:00
Nick O'Leary
d6c5d91e2c Remove package.json from gitignore because it breaks everything 2015-02-08 23:14:37 +00:00
Nick O'Leary
e042d9e8cd Bump version 0.10.0 2015-02-08 23:03:48 +00:00
dceejay
07c8c4bb45 Let Pi GPIO node show pins in use to help avoid clashes. 2015-02-08 19:40:23 +00:00
dceejay
2dd572f5bd Allow msg.description to add to the email body text
(for feed from Fluickr node)
2015-02-08 15:02:02 +00:00
dceejay
d4a27f88a1 Allow Email node to send html, and add attachments.
(outbound only at present)
2015-02-08 11:33:04 +00:00
dceejay
1513dbfcdd Add strict flag to debug (for consistency with others) 2015-02-08 11:32:26 +00:00
Nick O'Leary
8451c29a25 Add line/col report test 2015-02-07 19:56:22 +00:00
Nick O'Leary
ae7f1b38a8 Add line/col reporting to Function runtime errors 2015-02-07 19:52:14 +00:00
Nick O'Leary
83dad88ad3 Fix debug reporting of warning/errors 2015-02-07 19:29:43 +00:00
Nick O'Leary
8eb1a02407 Fix unit test failures following mocha upgrade 2015-02-06 17:27:43 +00:00
Nick O'Leary
1e6f45852f Update package dependencies 2015-02-06 17:17:44 +00:00
Nick O'Leary
3849855b57 Rename _id to _msgid to avoid mongo clash 2015-02-06 16:36:32 +00:00
Nick O'Leary
f2712f296b Update to font-awesome 4.3 2015-02-06 13:57:33 +00:00
Nick O'Leary
c7f13e3d0c Add needsPermission protection to core nodes 2015-02-06 13:57:15 +00:00
Nick O'Leary
d1fe997bf7 Doc updates 2015-02-06 13:16:46 +00:00
Nick O'Leary
86c8a5de81 Allow palette categories to be predefined 2015-02-06 13:16:19 +00:00
Nick O'Leary
010abbd3d5 Remove deprecated nodes 2015-02-06 11:33:04 +00:00
Nick O'Leary
3123aa6279 Merge pull request #558 from knolleary/auth
Add bearer token authentication to Editor
2015-02-06 11:28:12 +00:00
Nick O'Leary
dedda19626 Restyle user menu 2015-02-06 11:27:21 +00:00
Nick O'Leary
c31ffb98b0 Tie auth middleware to needsPermission api 2015-02-05 23:43:35 +00:00
Nick O'Leary
3ef6f29d6e Add Log.trace/debug/error functions 2015-02-05 17:05:39 +00:00
Nick O'Leary
26c42e500f Allow user.default to be an api function 2015-02-05 13:01:00 +00:00
Nick O'Leary
53a515176b Remove unused token expiry code 2015-02-05 13:01:00 +00:00
Nick O'Leary
fbf7ee50eb Increase unit test coverage of auth code 2015-02-05 13:00:56 +00:00
Nick O'Leary
b2aae93fa6 Hide user profile menu 2015-02-05 13:00:55 +00:00
Nick O'Leary
a494954275 Add permissions and user menu 2015-02-05 13:00:55 +00:00
Nick O'Leary
f5d7903ecb Stop lost connection message bouncing when not authed 2015-02-05 13:00:55 +00:00
Nick O'Leary
9bbe0799bd Allow adminAuth setting to provide functions 2015-02-05 13:00:55 +00:00
Nick O'Leary
f3eb85c449 Move over to settings.adminAuth 2015-02-05 13:00:54 +00:00
Nick O'Leary
74e1ef0823 Add auth awareness to comms channel 2015-02-05 13:00:49 +00:00
Nick O'Leary
982997c3df Add auth awareness to ui 2015-02-05 13:00:49 +00:00
Nick O'Leary
66005a2688 Use jquery ajax rather than d3 2015-02-05 13:00:49 +00:00
Nick O'Leary
42cd6f94a7 fix settings 2015-02-05 13:00:37 +00:00
Nick O'Leary
dfc20f3cc9 Add node-red logo for login screen 2015-02-05 13:00:29 +00:00
Nick O'Leary
2b5a1ce6d4 Add settings changes 2015-02-05 13:00:16 +00:00
Nick O'Leary
28823802ea Prompt login if auth enabled 2015-02-05 13:00:16 +00:00
Nick O'Leary
2128b57ab2 Add oauth grant 2015-02-05 13:00:07 +00:00
Nick O'Leary
c8ccacb035 Switch node sortable entries diable inputs in FF 2015-02-05 10:46:01 +00:00
dceejay
3334c795e0 Correct spelling in Pi error messages, fix mouse icon file type 2015-02-04 23:27:51 +00:00
Nick O'Leary
b97d251787 Add on-headers dependency to package.json 2015-02-04 22:32:27 +00:00
Nick O'Leary
482c4e9c5e Add memory metric reporting 2015-02-04 22:28:17 +00:00
Nick O'Leary
1712146836 Clear loghandlers on init and supress output in tests 2015-02-04 21:29:11 +00:00
Nick O'Leary
c8d2d690f0 Rename HTTP In content-length metric 2015-02-04 21:10:18 +00:00
Nick O'Leary
f2d4648384 Support of HTTP Node metrics 2015-02-04 20:48:46 +00:00
dceejay
86ca75bcd5 Pi Node status not displaying 0 fixed. 2015-02-04 19:02:32 +00:00
Nick O'Leary
31aa3901cc Fix global leak in localfilesystem 2015-02-04 15:41:18 +00:00
Nick O'Leary
ab831c34f3 Enable node status by default 2015-02-04 15:23:28 +00:00
Nick O'Leary
8443e48240 Place flows backup alongside flow file
Also backup credentials file in the same manner.
2015-02-04 15:23:28 +00:00
dceejay
a08b29dbd1 Add info to Twitter out node to make it obvious how to do DMs. 2015-02-04 11:36:43 +00:00
Nick O'Leary
97621b41b9 Ensure deleted core nodes are removed from config list 2015-02-04 10:27:02 +00:00
Nick O'Leary
f462446213 Make Function duration status optional 2015-02-04 10:01:46 +00:00
hbeeken
6b96c1876a changing function node metrics to new infrastructure 2015-02-04 09:46:54 +00:00
Nick O'Leary
0aaea1ec40 Update logging/metric system 2015-02-03 22:02:26 +00:00
hbeeken
7d6ce1ec12 Changing metric logging to take a primative rather than an object 2015-02-03 19:12:09 +00:00
hbeeken
b052324d36 Adding logging & metric recording configuration via settings 2015-02-03 19:12:09 +00:00
dceejay
a22f819f40 Bit more consistent error handling / status updates for Pi GPIO node 2015-02-03 17:22:44 +00:00
Nick O'Leary
07acc6642f Merge pull request #460 from hindessm/fix-lastSent-initial-value
Fix node.lastSent initial value after refactoring.
2015-02-03 13:27:48 +00:00
Nick O'Leary
950611ed31 Merge pull request #554 from hbeeken/Node-spec-fix
Fixing test where part wasn't exercised
2015-02-03 13:26:50 +00:00
dceejay
84e6417877 Change inject node to use tick boxes for days of week instead of select. 2015-02-03 11:21:29 +00:00
hbeeken
a87548a991 Fixing test where part wasn't exercised 2015-02-02 13:21:19 +00:00
dceejay
5e5a220f68 Better ref link for CSS selectors list for HTTP parser node. 2015-01-30 10:00:20 +00:00
dceejay
f451d0644a Allow msg.PATCH method on http request node
Simple fix  to Close PR #524
(no CLA)
2015-01-30 10:00:20 +00:00
Nick O'Leary
e9f0877da8 Skip .info call for subflow IO nodes 2015-01-30 09:53:11 +00:00
dceejay
f6c6301733 Add done() async close to tcp node(s) 2015-01-29 21:43:23 +00:00
dceejay
0709a118e3 more fun trying to close Pi and Arduin nodes async style with done()
(more consistent use of call done().)
2015-01-29 21:43:23 +00:00
Nick O'Leary
7576878ba5 Filter comments when generating palette tooltips
Fixes #549
2015-01-29 21:40:21 +00:00
Nick O'Leary
083e253e45 Configure marked once on start-up 2015-01-29 20:47:30 +00:00
Nick O'Leary
da67e69544 Add drag handle to switch node rules 2015-01-29 20:38:19 +00:00
dceejay
0ed8d28342 Add Markdown capability to Comment node
body is rendered in the info tab and can be styled with Markdown
2015-01-29 18:53:59 +00:00
dceejay
27f9056360 Add status to file node when you overide filename
(so you can see what it writes to... )
2015-01-29 18:53:59 +00:00
dceejay
8c075bfde3 Make HTML select node point to Cheerio select docs. 2015-01-29 18:53:59 +00:00
dceejay
cae755d948 Cleanup closing down of Pi gpio nodes 2015-01-29 18:53:58 +00:00
Nick O'Leary
ca9d84b1b7 Allow Switch rules to be drag-ordered 2015-01-29 16:28:18 +00:00
Nick O'Leary
f983e4da9f Renable unit tests following logging api changes 2015-01-29 09:57:09 +00:00
Nick O'Leary
109270b437 Merge pull request #541 from hbeeken/logging-infrastructure
Adding metric logging mechanism
2015-01-27 17:50:26 +00:00
hbeeken
0bfbb12211 Adding metric logging mechanism 2015-01-27 14:41:20 +00:00
dceejay
69998243cc Add fs.notify, feedparser and serialport to default install packages
To close #518  Pull request 9 by TJ
We want to keep arduino, mongo and redis out of the default install for now.
need for js2xmlparser will go in v0.10
2015-01-21 15:05:35 +00:00
dceejay
8b61c121e6 Small changes to info box language for file watch node 2015-01-21 15:05:35 +00:00
Nick O'Leary
56ef982345 Revert settings.js 2015-01-18 21:24:19 +00:00
Nick O'Leary
8389df9729 Merge branch 'master' of github.com:node-red/node-red 2015-01-18 09:39:05 +00:00
Nick O'Leary
a8f1a6df2c Update sidemenu links to nodered.org 2015-01-18 09:38:47 +00:00
dansu
68e51bb886 added tests for websocket-client
cleanup and prettify
2015-01-18 09:38:47 +00:00
Nick O'Leary
462c259f3a Allow node to provide dynamic content to Info tab
Closes #492

The node definition can now include an `info` property. This property can be either a string or a Function. Whenever the info tab is refreshed, such as the node is selected, the value of this property, or the result of the Function, will be appended to the Info tab.
2015-01-18 09:38:47 +00:00
Nick O'Leary
f6f4b0784b Make subflow delete option more obvious
Fixes #514
2015-01-18 09:38:47 +00:00
Nick O'Leary
57b39022d0 Merge pull request #537 from dsundberg/websocket-client-unittests
added tests for websocket-client
2015-01-17 22:45:22 +00:00
Nick O'Leary
110f0bf169 Allow node to provide dynamic content to Info tab
Closes #492

The node definition can now include an `info` property. This property can be either a string or a Function. Whenever the info tab is refreshed, such as the node is selected, the value of this property, or the result of the Function, will be appended to the Info tab.
2015-01-17 21:36:16 +00:00
Nick O'Leary
3f0fcb70a4 Make subflow delete option more obvious
Fixes #514
2015-01-17 21:02:28 +00:00
Nick O'Leary
d8c7ea8144 Tidy sidebar menu
- remove inconsistent ellipsis
- add Subflow submenu
2015-01-17 20:36:18 +00:00
dansu
44db2c28a3 added tests for websocket-client
cleanup and prettify
2015-01-17 21:10:38 +01:00
Nick O'Leary
8d5f99640e Merge pull request #533 from knolleary/deploy
Add smarter deployment options
2015-01-16 16:00:35 +00:00
Nick O'Leary
ffe417976c Merge pull request #532 from hindessm/random-delay-fixes
Random delay fixes
2015-01-16 15:46:53 +00:00
Nick O'Leary
d04ac00732 Add more Flow_spec tests 2015-01-16 15:43:47 +00:00
Nick O'Leary
dd5e851339 Better sidemenu style 2015-01-16 10:25:57 +00:00
Dave Conway-Jones
2890575b3d Merge pull request #531 from dsundberg/websocket-unittest
Websocket unit tests
2015-01-15 17:18:34 +00:00
Dave Conway-Jones
8b3fbae3f6 Merge pull request #516 from dsundberg/websocket_ext
Added option to specify remote WebSocket URL in web socket node.
2015-01-15 17:17:21 +00:00
Nick O'Leary
c97ab18e62 Add Flow spec 2015-01-15 17:12:50 +00:00
Nick O'Leary
b0ffc12142 Restyle sidebar menu 2015-01-15 10:28:12 +00:00
Nick O'Leary
687a66344e Deploy menu style 2015-01-15 10:28:11 +00:00
Nick O'Leary
a5afc258b1 Update unit tests 2015-01-15 10:28:11 +00:00
Nick O'Leary
afb5e8cbce Fix jshint errors 2015-01-15 10:28:11 +00:00
Nick O'Leary
83b40a7ba6 Fix credential update 2015-01-15 10:28:11 +00:00
Nick O'Leary
cf1371bfdf Add deployment types in runtime
- removes ui option as it needs work
2015-01-15 10:28:11 +00:00
Nick O'Leary
89fff339d5 Add deploy dropdown button 2015-01-15 10:28:10 +00:00
Nick O'Leary
e11abd2508 Identify modified nodes on deploy 2015-01-15 10:28:10 +00:00
dansu
9a0177b900 Added support for websocket-client in 22-wesocket node, selectable in ui
as Listen to/Connect to drop down.
2015-01-15 08:57:42 +01:00
Mark Hindess
5510dffe18 Fix random delay mode to be random delay not random rate-limited stack.
Documentation says "Introduces a delay into a flow or rate limits
messages." but this node was doing delay and rate limit in random mode
which doesn't seem that useful. Worse it was a stack not a queue. I
can't think of any sane use cases for that behaviour.
2015-01-14 14:19:21 +00:00
Mark Hindess
7909ca24d3 Fix random delay in milliseconds case and change test to reproduce bug.
Because there was no multiplier the node.randomFirst was a string so
the later '+' was a concatentation. The test failed to catch this because
it uses integers not strings to configure the node.
2015-01-14 10:18:47 +00:00
dceejay
eee2996e8a Make Pi GPIO node wait for close before restarting
Looking to address Issue #530
2015-01-14 09:55:30 +00:00
dansu
2577631334 Added unittests for websocket node 2015-01-13 10:38:53 +01:00
dansu
9f91493cd1 rename 'send' to 'reply' to not collide with internal node function names, a config node has no wires so the 'send' function gets overwritten with a noop (nodes/red/Node.js:42, introduced in 57ae297) 2015-01-13 08:48:59 +01:00
dceejay
fcec704b7b Reset some changes to sample to be in line with how most of our nodes
actually are.
2015-01-12 19:11:07 +00:00
dceejay
2066d53d3f Handle quotes in JSON inside CSV files in CSV node...
so they come out as real JSON rather than being stripped.
2015-01-09 20:32:05 +00:00
Dave Conway-Jones
8822335700 Merge pull request #522 from motiooon/patch-1
adding skip to the mongodb input node
Great - looks good - many thanks @motiooon
2015-01-09 20:27:09 +00:00
Gabriel Baciu
f461b121e1 mongodb node take a skip property so pagination can be achieved 2015-01-09 14:32:21 -05:00
dceejay
92b393d3df really enforce binary for exec node stdout when required. 2015-01-08 12:35:42 +00:00
dceejay
4fb2a44d74 correct exec binary stdout to be consistent with spawn stdout.
Binary = buffer
String = utf8
2015-01-07 21:33:15 +00:00
dceejay
00429ebe70 Update exec node to handle binary stdout 2015-01-07 21:12:01 +00:00
dceejay
25537e01d4 Add byte mode and mouse buttons to Pi node 2015-01-06 22:06:28 +00:00
Nick O'Leary
65e4d83625 Merge pull request #526 from anna2130/mongo-db-aggregate
Fixed check for array in MongoDB aggregate function
2015-01-05 11:14:18 +00:00
Anna Thomas
ed6272ce12 Fixed check for array in MongoDB aggregate function
Fixes #525
2015-01-05 10:57:49 +00:00
dceejay
9e4187d6a8 New Pi GPIO node based on RPI.GPIO library.
Adds PWM support of outputs and easier access to interrupts for inputs.
2014-12-27 13:11:44 +00:00
Dave C-J
b4dc66944a Make sample node more representaive of a real node...
(OK not really real but at least it now doesn't fail if you try to run it)
2014-12-26 15:28:31 +00:00
Dave C-J
a51056a91f Be a bit more relaxed about IRC node reconnect - it does happen eventually.
Trying to nail down Issue #447
2014-12-18 23:22:36 +00:00
Nick O'Leary
a3692944a2 Merge pull request #515 from anna2130/nr-cli-enhancements
No-op and return success on enabling/disabling node by type name
2014-12-17 14:03:38 +00:00
Anna Thomas
03765afefa Updated nodes_spec test to no-op when already enabled/disabled by type name 2014-12-17 13:58:49 +00:00
Anna Thomas
66213d151d No-op and return success on enabling/disabling node by type name 2014-12-17 13:35:57 +00:00
Nick O'Leary
0c699ae57f Merge pull request #511 from anna2130/nr-cli-enhancements
Updates to match cli changes
2014-12-17 13:10:49 +00:00
Dave C-J
bf8d549cf7 Add "advanced" options to XML parsing node
Allows setting of attrkey and charkey
Push to close #348
2014-12-15 17:05:18 +00:00
Dave C-J
1261bf97ea Remove : from inject node label - people didn't like it.
Claim they can tell the difference between topic and payload as they wrote
the flow...
2014-12-15 17:03:18 +00:00
Dave C-J
41552625e0 remove spurious line of debug from http node 2014-12-15 17:01:58 +00:00
Dave C-J
27ef7d972f Add Binary paylaod option to Http request node
Also add JSON parse option to output
Allow user to select override using msg.method to stop getting warning.
Fix to close #399
2014-12-09 14:40:03 +00:00
Dave C-J
6fc3aab907 Make Palette search Case InSeNsItIve
fix to close #496
2014-12-09 14:37:32 +00:00
Anna Thomas
10681f97d9 Updated tests to reflect addition of version getSet 2014-12-08 16:53:06 +00:00
Anna Thomas
475d9e110e Updated to match cli changes 2014-12-08 16:53:06 +00:00
Nick O'Leary
8c5fab61e6 Merge pull request #509 from anna2130/nr-cli-enhancements
nr-cli enhancements
2014-12-08 13:08:58 +00:00
Anna Thomas
e7ccff5a4b Get version from pkg 2014-12-08 10:15:21 +00:00
Anna Thomas
81e08e06e4 Updated test to reflect saving settings in nodes 2014-12-08 10:10:16 +00:00
Anna Thomas
b006ccf610 saveNodeList saves settings in nodes 2014-12-08 09:57:17 +00:00
Anna Thomas
bb0e48f271 Store version in settings 2014-12-08 09:55:51 +00:00
Nick O'Leary
6d0dffcdf7 Migrate node config to new format 2014-12-05 20:43:41 +00:00
Nick O'Leary
14b84f0c7b Merge pull request #498 from anna2130/nr-cli-enhancements
nr-cli enhancements - server side api
2014-12-05 20:39:42 +00:00
Anna Thomas
8b6e287a74 Updated remove modules tests to reflect getNodeModuleInfo changes 2014-12-05 16:51:26 +00:00
Anna Thomas
1a5751ff1d Update removeModule to reflect getNodeModuleInfo changes 2014-12-05 16:45:32 +00:00
Anna Thomas
851048077c Remove new lines from version 2014-12-04 13:22:42 +00:00
Dave C-J
5f74a1d237 Update file, http and email nodes to only show deprecation warning
if msg property is a real overide  to node property ( !== ).

Fix for comment by @drJeckyll  to Issue #399
2014-12-01 22:58:25 +00:00
Dave Conway-Jones
e9b1e287ba Merge pull request #500 from jacktech24/master
Fixed bug, in Arduino output node
2014-11-28 10:52:12 +00:00
Nick O'Leary
da7b3ce9e4 Incorrect reference to routes in http in node
Fixes #503
2014-11-28 10:09:38 +00:00
Anna Thomas
35b3912808 Removed CLI from repo 2014-11-28 09:21:39 +00:00
Anna Thomas
e28f933f64 Refactor saveNodeList 2014-11-28 09:17:46 +00:00
Anna Thomas
57bc83b2a7 Enabling and disabling non-existent nodes throws an error 2014-11-27 16:42:45 +00:00
Anna Thomas
ec43fc4fe2 Removed unused code 2014-11-27 13:12:47 +00:00
Anna Thomas
8f2a0b63d9 Changed cleanNodeList to cleanModuleList 2014-11-26 16:46:51 +00:00
Anna Thomas
bb6e27f662 Store node list as module list 2014-11-26 16:25:37 +00:00
jacktech24
4e28a308b0 fixed bug, replaced servoWrite with analogWrite where it should be 2014-11-25 20:42:17 +01:00
Anna Thomas
04ffaeb2b8 Refactor nodeModules.nodes to moduleNodes 2014-11-24 15:44:11 +00:00
Anna Thomas
d7f249eac4 Added version number to modules 2014-11-21 16:35:29 +00:00
Anna Thomas
a5064b3ab6 Reloads module info after enabling/disabling module 2014-11-21 16:34:57 +00:00
Anna Thomas
dd5821ee1b Installing a module returns module info
Removing a module checks module exists and checks type is not in use
2014-11-21 15:15:24 +00:00
Anna Thomas
4c9d53388c Removed plugins references 2014-11-21 11:31:07 +00:00
Anna Thomas
70f101497d Replaced delete response with 204 2014-11-21 11:25:51 +00:00
Anna Thomas
56cb985de9 Separated put response into /nodes/:mod and /nodes/:mod/:set
Updated put tests
2014-11-21 10:36:32 +00:00
Anna Thomas
d614b7c39f Moved get node set response to /nodes/:mod/:set
Updated tests
Changed plugin back to module
2014-11-20 15:18:16 +00:00
Anna Thomas
0ff65f6805 Updated registry tests to reflect id changes 2014-11-20 13:08:27 +00:00
Anna Thomas
591b5f3f91 Replaced hex id with 'module/set' id 2014-11-20 12:15:15 +00:00
Anna Thomas
50fddf474b Local nodes loaded with node-red as their module 2014-11-20 09:58:42 +00:00
Nick O'Leary
3a78a2fedd Tab name changes not persisting
Fixes #495
2014-11-19 16:03:12 +00:00
Anna Thomas
9552055b08 loadNodeConfig assumed to always be called with module and name parameters 2014-11-19 13:54:00 +00:00
Nick O'Leary
71bd5cd9e9 Merge pull request #485 from anna2130/nr-cli-enhancements
WIP: Command Line Tool API
2014-11-17 13:34:24 +00:00
Nick O'Leary
7cff7ed297 Merge pull request #491 from anna2130/mongo-msg-collection
Fixes collection only being set by first message
2014-11-17 11:15:45 +00:00
Anna Thomas
6ba0d83778 Fixes collection only being set by first message 2014-11-17 10:33:31 +00:00
Dave C-J
ca2ef7e71f Pi GPIO node was not displaying Model B+ pin numbers correctly
on subsequent edit.
2014-11-16 18:23:24 +00:00
Dave C-J
977a9e1c83 Better attempt at making Inject node label more "useful".
Addresses Issue #489
2014-11-16 18:22:33 +00:00
Dave C-J
7da108e129 Reverting fix for #489 while we debate the issue more fully.... 2014-11-14 23:50:49 +00:00
Dave C-J
7b14e753cd Let Twitter node save place as a location property rather than text. 2014-11-14 23:42:35 +00:00
Dave C-J
9863b6e178 Add payload to Inject label to make more helpful
Close #489
2014-11-14 17:28:08 +00:00
Nick O'Leary
0789b82c15 Restore dialog size on reopn properly 2014-11-13 22:14:05 +00:00
Nick O'Leary
a477c0b827 Fix serial config node edit layout 2014-11-13 20:53:15 +00:00
Nick O'Leary
3cb423a0b4 Fix func/temp/comment editor resizing 2014-11-13 17:21:12 +00:00
Nick O'Leary
9c8d9550a7 Do not assume subflows exist when deleting nodes 2014-11-13 16:00:46 +00:00
Anna Thomas
8d16f3c8be Registry tests for plugins and enable/disable in CLI 2014-11-13 15:14:20 +00:00
Nick O'Leary
b4c92b457a Flatten the dialog box style 2014-11-13 13:55:12 +00:00
Nick O'Leary
426fcc2fdd Rework subflow edit process 2014-11-13 12:59:28 +00:00
Nick O'Leary
5cb9a5b7eb All subflow input to be deleted by selection 2014-11-13 00:02:41 +00:00
Nick O'Leary
64a6fe11da Add subflow outputs to be delete by selection 2014-11-12 23:51:42 +00:00
Nick O'Leary
f72f7cdaa7 Merge pull request #469 from Belphemur/ui-localstorage
Ui localstorage
2014-11-11 10:43:06 +00:00
Antoine Aflalo
01f0d5390f Adding support to LocalStorage on client side
Save the state of the Menu Item between session (like activation of
node-status and sidebar)
2014-11-11 09:04:57 +02:00
Dave C-J
ed9951f065 Add PWM support to Pi GPIO Node - pin 12 (GPIO1)
(only pin that has hardware pwm support)

Note: It will interfere with any other audio output as they share 
same hardware/timers.
2014-11-10 20:03:51 +00:00
Nick O'Leary
4249cf5d69 Fix debugMaxLength description
Closes #484
2014-11-09 20:55:13 +00:00
Dave C-J
5da45b404c Add delete option to File node
to replace msg.delete option - now deprecated but not removed.
Addresses some of the confusion  for Issue #399
2014-11-08 15:34:54 +00:00
Dave C-J
8b7e367416 tweak CSV parser to better handle GSM style phone numbers. 2014-11-08 15:34:54 +00:00
Nick O'Leary
28da2dc38a Subflow palette node outputs not updating
part of #479
2014-11-07 16:12:27 +00:00
Dave C-J
5c5de028da Add remote server name to page title / tab
Makes selecting one of several servers easier.
2014-11-07 12:28:35 +00:00
Dave C-J
b861f490c6 tiny tidy-up on TCP request node 2014-11-07 12:28:34 +00:00
Nick O'Leary
e7dccf04d2 Changing subflow in/outs leaving wires behind
Fixes #477
2014-11-07 11:22:00 +00:00
Nick O'Leary
3e235ecc0b Move cloneMessage to RED.util.cloneMessage 2014-11-06 11:39:30 +00:00
Anna Thomas
deeaa09360 Renamed modules to plugins for CLI 2014-11-06 10:59:34 +00:00
Anna Thomas
2e7a97fb88 Get plugins tests 2014-11-06 10:59:06 +00:00
Dave C-J
9c92eeb9f5 Allow tcp request node to accept msg.host and msg.port as inputs
Overrides only allowed if edit setting left blank.
2014-11-06 10:21:14 +00:00
Anna Thomas
3e24601518 Functionality to get installed module info from the cli 2014-11-06 10:00:25 +00:00
Nick O'Leary
266a644ca6 Preserve querystring when ensuring path ends with slash 2014-11-06 00:01:01 +00:00
Nick O'Leary
def93214de Merge pull request #476 from knolleary/auth
Reorganise how adminApp is setup
2014-11-05 23:18:32 +00:00
Nick O'Leary
a520240b25 Ensure application/json on library flows reqs 2014-11-05 23:08:23 +00:00
Nick O'Leary
e7eb02fcb7 Add unit tests for refactored API modules 2014-11-05 23:07:50 +00:00
Nick O'Leary
72f9471f2b Reorganise how adminApp is setup 2014-11-05 22:45:18 +00:00
Nick O'Leary
67449eb65a Merge pull request #470 from anna2130/msg-property-overrides
Message properties overriding set node properties
2014-11-05 22:05:34 +00:00
Anna Thomas
069a47f35a Added node warnings when message properties override set node properties 2014-11-05 17:23:27 +00:00
Nick O'Leary
53b07581cf Merge pull request #474 from zobalogh/twitter-location
Adding location support to Twitter
2014-11-05 15:40:47 +00:00
zobalogh
11a29b4633 Adding location support to Twitter 2014-11-05 12:00:37 +00:00
Dave C-J
bdb46cbbe4 Add "is-utf8" npm to package - part of fix #435 2014-11-04 22:00:58 +00:00
Dave C-J
273acc0ec4 Let MQTT input node receive binary packets
Try to auto select output type to be string or buffer to be backwards compatible
Fixes #435
2014-11-04 21:56:15 +00:00
Nick O'Leary
1153619a03 Handle uninitialised node in single-wire fastpath 2014-11-04 11:36:28 +00:00
Nick O'Leary
f89ddb5f7a Merge pull request #463 from njh/redis-object
Added support for storing a msg.payload of type object in a Redis hash
2014-11-01 21:19:45 +00:00
Nick O'Leary
4494c11b03 Subflow name property getting dropped on import
Closes #468
2014-10-31 22:46:26 +00:00
Dave C-J
694649e8f9 Update feedparse in line with underlying npm. 2014-10-31 18:59:57 +00:00
Anna Thomas
9f925140c9 Updated MongoDB node info 2014-10-31 15:41:13 +00:00
Nick O'Leary
6a37a823df Update orion to 7.0 release
Closes #467

Version: http://download.eclipse.org/orion/drops/R-7.0-201410282256/index.html
2014-10-31 14:28:33 +00:00
Nick O'Leary
f0e9a0279f Ignore comms heartbeat messages in comms test 2014-10-31 13:06:08 +00:00
Nick O'Leary
863b85714d localfilesystem storage must fsync writes
Closes #465
2014-10-31 11:40:10 +00:00
Nick O'Leary
dfc79e3122 Preserve unknown node type properties across deploys
Closes #5
2014-10-30 21:41:42 +00:00
Nicholas Humfrey
afde3d0ab8 Added support for storing a msg.payload of type object in a Redis hash 2014-10-30 10:09:40 +00:00
Nick O'Leary
7419f62a20 Merge pull request #461 from hindessm/fix-tweet-post-error-reporting
Fix tweet post error reporting.
2014-10-30 08:44:08 +00:00
Mark Hindess
f06b52625f Fix tweet post error reporting. 2014-10-30 08:38:49 +00:00
Nick O'Leary
ccfbd69f24 Merge pull request #459 from hindessm/fix-info-id-refactoring-bug
Fix refactoring error; rename info to id.
2014-10-30 08:35:10 +00:00
Mark Hindess
d859412785 Fix node.lastSent initial value after refactoring. 2014-10-30 08:19:52 +00:00
Mark Hindess
3840bd117c Fix refactoring error; rename info to id. 2014-10-30 08:08:41 +00:00
Nick O'Leary
aff8a7802a Merge pull request #458 from knolleary/subflows
Add Subflows
2014-10-29 22:04:48 +00:00
Nick O'Leary
6169e4299a Add initial subflow tests 2014-10-29 21:44:33 +00:00
Nick O'Leary
d9648ca76b Add subflow support 2014-10-29 20:26:25 +00:00
Dave C-J
348b642d25 Return sensible name to display for Delay node Queue mode 2014-10-29 18:26:43 +00:00
Dave C-J
a1830def8e Fix http in node close wrinkle if cors enabled but not used. 2014-10-29 18:26:09 +00:00
Dave C-J
98b875c4a0 Neater fix for Mac meta key - thanks to Nick. 2014-10-29 09:05:48 +00:00
Nick O'Leary
d242f67be3 Merge pull request #457 from anna2130/change-node-multi-level-properties
Change node can set msg property to another msg property. Closes #456
2014-10-28 16:07:42 +00:00
Anna Thomas
ce6513e7f7 Change node can set msg property to another msg property. Closes #456 2014-10-28 15:50:50 +00:00
Dave C-J
bd75c1c753 Better attempt at adding Apple meta key 2014-10-28 09:03:00 +00:00
Nick O'Leary
48d3b8f37a Inject node interval error
part two of #455
2014-10-27 19:41:29 +00:00
Nick O'Leary
4c573b208c Merge branch 'master' of github.com:node-red/node-red 2014-10-27 19:36:43 +00:00
Nick O'Leary
a5228875a6 Inject node calculating hour interval period incorrectly
Fixes #455
2014-10-27 19:36:26 +00:00
Dave C-J
c51866c2c5 Add ⌘ Cmd key as alternative to Ctrl key to make Mac users happy. 2014-10-27 15:07:34 +00:00
Dave C-J
bbaf7bf247 correcting typos in trigger node... oops 2014-10-27 08:54:21 +00:00
Nick O'Leary
04673c65f4 Node drag start threshold incorrectly calculated 2014-10-26 22:23:56 +00:00
Nick O'Leary
57ae297efd Clone messages before any node.receive call 2014-10-25 23:12:30 +01:00
Dave C-J
0bb78ae491 Try to ensure TCP node closes server connections on redeploy
(to clean up properly - especially in case of port changes)

Closes Issue #454
2014-10-25 17:52:24 +01:00
Dave C-J
d9363f4974 Reduce logging for exec node
(can be re-enabled by using node -v red.js ... )
2014-10-25 17:50:55 +01:00
Dave C-J
b54e9edfa6 Add "topic based fair queue" option to delay node 2014-10-24 20:00:25 +01:00
Dave C-J
cf81de415a Minor UI tweaks to RPi node 2014-10-24 20:00:25 +01:00
Nick O'Leary
4cd78692e2 Handle debug boolean complete properties 2014-10-23 15:28:47 +01:00
Nick O'Leary
5fd1ff5137 Add hint on requiring fs module in settings.js 2014-10-22 21:44:01 +01:00
Nick O'Leary
fe95a98339 Merge pull request #441 from anna2130/reduce-message-cloning-overhead
Reduces message cloning overhead for single recipients
2014-10-22 15:09:59 +01:00
Nick O'Leary
da73972c41 Merge pull request #449 from hbeeken/update-test-helper
Adding capability to the test helper to load more than one node at once
2014-10-22 15:08:17 +01:00
Nick O'Leary
014389c55f Merge pull request #450 from Belphemur/patch-1
Correcting a Typo
2014-10-22 15:07:47 +01:00
Antoine Aflalo
ff4edccbbc Correcting a Typo 2014-10-22 16:33:48 +03:00
hbeeken
1e7ce2cfe7 Adding capability to the test helper to load more than one node at once 2014-10-22 11:29:54 +01:00
Anna Thomas
bc8e459ae6 Node does not clone first message sent
Tests updated to mirror this behaviour
    Annotated algorithm
2014-10-21 14:08:35 +01:00
Nick O'Leary
53a9a5fe93 Merge pull request #422 from anna2130/debug
Updated debug node to output other msg properties
2014-10-20 16:35:24 +01:00
Anna Thomas
17e4bf1a11 Tidy up node label and edit dialog 2014-10-20 12:52:07 +01:00
Nick O'Leary
bec4e429f9 Merge pull request #433 from anna2130/change-node-multi-level-properties
Change node: Multi-level properties
2014-10-20 11:12:59 +01:00
Dave C-J
472fdc65a9 Allow Raspberry Pi node to set initial output level.
Fix for #443
Also allow (optional) initial read of input pins on deploy.
Moved to Category Raspberry Pi 
(other Pi related nodes will be updated to match soon).
2014-10-19 13:54:21 +01:00
Dave C-J
28a4ba1aad Don't let IRC node try to join channels multiple times...
Addresses #447
2014-10-18 20:38:58 +01:00
Dave Conway-Jones
dd9fc6a250 Merge pull request #437 from hindessm/file-query-node-usability
Minor fixes to messages sent from "file in" nodes.
2014-10-14 17:54:47 +01:00
Dave C-J
7802939bb0 fix IRC node (once again)
refactoring created incorrect object references - which weren't picked up.
(sorry) -  Addresses Issue 439
2014-10-09 20:50:46 +01:00
Nick O'Leary
d4a21be666 Clone settings to avoid modifying original values 2014-10-09 14:21:53 +01:00
Mark Hindess
0d9abbb8b6 Minor fixes to messages sent from "file in" nodes.
Specifically:

* in the error case, set msg.filename to be the name of the file used (as
  is done in the non-error case),

* in the error case, delete msg.payload so that subsequent nodes only need
  check for a msg.payload to act upon if they don't care about error cases,
  and

* in the non-error case, delete msg.error to avoid passing through errors
  from earlier nodes to a subsequent node that does care about error cases

Messages sent will now always have well-defined behaviour with respect to
the payload, filename, and error in both error and non-error cases.
2014-10-09 11:19:14 +01:00
Nick O'Leary
9a32e79603 Merge pull request #436 from anna2130/calculate-text-width
Refactored palette.js and view.js to reuse calculateTextWidth
2014-10-09 10:21:42 +01:00
Anna Thomas
206b8ac34a Refactored to reuse calculateTextWidth 2014-10-09 10:07:17 +01:00
Nick O'Leary
da1321f1de Bump 0.9.1
Commit 1000! \o/
2014-10-08 13:56:05 +01:00
Nick O'Leary
748c7aedee Add nodes to provide custom palette labels 2014-10-08 13:54:48 +01:00
Nick O'Leary
483c4352d3 Merge pull request #434 from anna2130/palette-multi-line-nodes
Node expands for multi-line node names
2014-10-08 13:23:54 +01:00
Anna Thomas
1afd4e7acc Node expands for multi-line node names splitting on spaces only 2014-10-08 13:20:56 +01:00
Nick O'Leary
21e349c22a Ensure httpNodePath is handled properly in HTTP/WS nodes
Cope with httpNodePath not ending with a / when it comes to
displaying the node details. The runtime is not affected.
2014-10-08 11:03:18 +01:00
Dave Conway-Jones
da4446c20f Merge pull request #432 from hindessm/avoid-abbreviation-and-be-consistent
Don't use abbreviation 'mins' and 'minutes' in the same sentence.
2014-10-07 22:23:06 +01:00
Anna Thomas
986ce8163f Added tests to check functionality when using multi-level properties 2014-10-07 16:12:35 +01:00
Anna Thomas
97e5c2e571 Added multi-level property functionality 2014-10-07 16:12:35 +01:00
Anna Thomas
2a753c9d22 Updated debug node test 2014-10-07 10:25:56 +01:00
Anna Thomas
f96b40cff2 Updated debug node to output other msg properties 2014-10-07 10:25:56 +01:00
Mark Hindess
e0927d190f Don't use abbreviation 'mins' and 'minutes' in the same sentence.
I don't think saving three letters justifies the use of a non-standard
abbreviation.  If we really need to save letters, then the SI units would
be better and for most people to read.
2014-10-07 08:40:06 +01:00
Dave C-J
0c636ca707 Wind down excessive logging on IRC node
now only logs connects/reconnects, errors and "raw" input commands
(so you can debug them when you get it wrong)
All other messages appear on the node output anyway.
2014-10-06 10:20:40 +01:00
Dave C-J
d49ed69a0a Remove listener limit on IRC node server connection.
Fixes #431
2014-10-05 21:36:42 +01:00
Dave C-J
4b73a92f71 Cross platform fix for Arduino Serial port not there.
Fix for #428
2014-10-04 22:56:52 +01:00
Dave C-J
e95d4a9010 Update Ardunio node slightly in line with latest Windows Serialport patches.
(But there is still a possibly bad underlying problem 
- error not being caught -  in the upstream npm - reported.)
2014-10-04 22:26:02 +01:00
Dave C-J
d950ceceea Tweak IRC fix #430 to not create multiple clients on extended reconnects 2014-10-03 22:27:58 +01:00
Dave C-J
43f55c6038 Add IRC server link check and retry after timeout
Fix for #430
2014-10-03 21:15:09 +01:00
Nick O'Leary
489c552dbe Reset settings between tests 2014-10-03 15:05:37 +01:00
Nick O'Leary
c223e7f58f Avoid writing unchanged settings 2014-10-03 14:47:23 +01:00
Nick O'Leary
86d4179039 Merge pull request #421 from hindessm/fix-supertest-usage
Fix supertest usage to correctly throw errors.
2014-10-01 22:48:00 +01:00
Nick O'Leary
b0e2b3d525 Merge pull request #429 from hindessm/fix-build-without-nock
Make nock an optional dependency.
2014-10-01 20:40:57 +01:00
Mark Hindess
ea6313c9a1 Make nock an optional dependency. 2014-10-01 18:14:40 +01:00
Nick O'Leary
c631b393e9 Merge pull request #427 from hindessm/add-nock-to-node-test-helper
Add nock to node test helper.
2014-10-01 14:59:23 +01:00
Mark Hindess
8df9eee6d2 Add nock to node test helper. 2014-10-01 14:35:51 +01:00
Nick O'Leary
322a6ebed3 Merge pull request #419 from hindessm/add-credentials-to-test-helper
Add credentials support to node test helper.
2014-10-01 11:13:28 +01:00
Mark Hindess
669f3d9ba1 Fix supertest usage to correctly throw errors. 2014-09-30 14:59:37 +01:00
Mark Hindess
059ec3b50c Add credentials support to node test helper. 2014-09-30 08:01:40 +01:00
Dave C-J
4f496c37be Force file node to write "binary" - so as not to expand binary like chars
into utf encoding. Helps with writing strings that happen to be binary
encoded rather than buffers.
2014-09-26 21:19:32 +01:00
Nick O'Leary
d3956f9816 Ensure valid mongo selector object 2014-09-26 11:30:09 +01:00
Nick O'Leary
a5265784e8 Bump 0.9.0 2014-09-24 13:14:19 +01:00
Nick O'Leary
dbaa1ed59c Don't cache api requests in the editor
Fixes #413
2014-09-24 09:57:45 +01:00
Nick O'Leary
8742bf354b Missing brackets in sample node
Closes #414
2014-09-23 23:15:34 +01:00
Nick O'Leary
9152daa13b Fix race condition on saving config 2014-09-23 17:09:23 +01:00
Nick O'Leary
6305c5b55f Use request.del in cli request module 2014-09-23 16:35:17 +01:00
Nick O'Leary
723a3e628e Add cli tests 2014-09-23 00:14:30 +01:00
Nick O'Leary
af0b740fbd Rework nr-cli
- better componentisation
- add 'search' option to look for npm modules
- add 'target' option to point at non-default installs
2014-09-22 22:59:42 +01:00
Nick O'Leary
31255bd66b Handle blank config file 2014-09-22 21:35:30 +01:00
Nick O'Leary
1f95071a37 Only normalise known headers in http node 2014-09-22 20:48:06 +01:00
Nick O'Leary
5f77531a39 Merge pull request #410 from anna2130/mongo
Updates to MongoDB nodes
2014-09-22 16:45:19 +01:00
Anna Thomas
23b5ac4582 Allow user to select collection in mongo nodes using msg.collection 2014-09-22 16:16:21 +01:00
Anna Thomas
4f2e4b58e4 Added update functionality to mongodb out node 2014-09-22 16:09:56 +01:00
Nick O'Leary
abd3d752f5 Add deprecation warnings to nodes 2014-09-22 15:57:16 +01:00
Nick O'Leary
8d54126127 Pretty-print the .config.json file for ease of debug 2014-09-22 14:34:53 +01:00
Nick O'Leary
55c830b812 Add disableEditor option
Closes #409
2014-09-22 14:34:17 +01:00
Nick O'Leary
e48cbafbd6 Fix jshint test 2014-09-22 13:22:23 +01:00
Nick O'Leary
9bfc6d376b Use module:node name to generate set id 2014-09-22 13:15:19 +01:00
Nick O'Leary
c98b9dfaa3 Don't filter errored nodes in result list 2014-09-20 22:42:48 +01:00
Nick O'Leary
ea89aff3db Handle node-load errors properly
Fixes #403
Certain load errors were causing start-up to fail. In particular,
an npm module with a missing .js file.
2014-09-20 22:25:00 +01:00
Nick O'Leary
e2be5c6383 Don't assume errors have stacks associated with them 2014-09-20 21:29:46 +01:00
Nick O'Leary
f939d52551 Restore node ids from config list 2014-09-20 21:29:46 +01:00
Dave C-J
ed1da5cf7b Add try/catch to websocket to fix #402
Also allow buffer out as binary if required. (ie don't try and stringify a buffer)
2014-09-18 17:10:01 +01:00
Dave C-J
a718f34c58 Expand the non-functional sample to have an input to make it more useful 2014-09-18 17:06:35 +01:00
Nick O'Leary
da61fe12d0 Add dynamic node api
Closes #322
- nodes modules can be installed/removed dynamically at runtime
- nodes can be enabled/disabled
- onpaletteadd/onpaletteremove api added to node definitions
- initial implementation of nr-cli
2014-09-17 23:57:29 +01:00
Nick O'Leary
00cb8d5bce Update package dependencies
Closes #345

Also fixes a resulting test failure with the HTML parse node
2014-09-17 23:49:28 +01:00
Nick O'Leary
ebb0d1a46d Handle invalid property values in Switch node
Fixes #404
2014-09-17 22:31:26 +01:00
Dave C-J
f04e42e4da Fix bug in number handling in CSV parser
Thanks Anupam !
2014-09-16 19:05:16 +01:00
Dave C-J
22329ca106 Add hourly option to Inject Node time interval mode,
Fix a few UI wrinkles when editing.
2014-09-15 12:32:28 +01:00
Nick O'Leary
c4932e3cf9 Merge pull request #401 from anna2130/master
Added count and aggregate operations to MongoDB In node
2014-09-15 09:37:56 +01:00
Anna Thomas
bc8acd24ae Added count and aggregate operations to MongoDB In node 2014-09-15 09:33:36 +01:00
Dave C-J
a0ac79384d Tidy up some little wrinkles in Inject node html labels etc 2014-09-14 18:38:30 +01:00
Dave C-J
7e2dbb13e4 Major Update to CSV node.
now handles lines, files, column names in first row, etc etc
2014-09-12 16:50:01 +01:00
Nick O'Leary
429a87f88a Merge pull request #400 from hindessm/add-ensure-buffer-helper
Add ensureBuffer helper for nodes.
2014-09-10 13:33:23 +01:00
Mark Hindess
c0fcc20f23 Add ensureBuffer helper for nodes. 2014-09-10 12:46:56 +01:00
Nick O'Leary
a3497a5fc7 Merge pull request #398 from anna2130/master
Fixed _spec.js test
2014-09-10 09:53:02 +01:00
Anna Thomas
54a2923c65 Fixed _spec.js test 2014-09-10 09:48:27 +01:00
Dave C-J
400f51d921 Allow IRC name changes when node chanel not set.
Trying to f ix #397
2014-09-09 22:14:52 +01:00
Nick O'Leary
50f1a17920 Merge pull request #396 from hindessm/delete-should-not-require-defined-payload
Fix logic so defined msg.payload is not prereq for delete.
2014-09-09 20:47:54 +01:00
Mark Hindess
72dcb53d23 Fix logic so defined msg.payload is not prereq for delete. 2014-09-09 20:01:54 +01:00
Nick O'Leary
0111ab8901 Merge pull request #393 from hindessm/remove-unused-vars-in-nodes
Remove unused variables.
2014-09-08 22:26:16 +01:00
Mark Hindess
fd04b5851b Remove unused variables. 2014-09-08 21:53:15 +01:00
Nick O'Leary
94b196bfcf Merge pull request #392 from hindessm/remove-redundant-null-checks
Remove redundant msg != null checks.
2014-09-08 21:31:55 +01:00
Mark Hindess
5d9c16ffbf Remove redundant msg != null checks. 2014-09-08 21:10:06 +01:00
Nick O'Leary
7b63680be1 Upgrade FontAwesome to 4.2
Part of #377
2014-09-08 21:01:49 +01:00
Nick O'Leary
d30f1e639b Merge pull request #391 from hindessm/remove-undefined-reference-to-node
Remove reference to undefined variable 'node'.
2014-09-08 20:38:00 +01:00
Nick O'Leary
27149fe10f Merge pull request #390 from hindessm/fix-base64-udp-send
Fix base64 udp send
2014-09-08 20:20:22 +01:00
Nick O'Leary
3880bd7ca4 Merge pull request #389 from hindessm/remove-spurious-dollar
Remove spurious dollar.
2014-09-08 20:20:12 +01:00
Nick O'Leary
7ec7354755 Merge pull request #388 from hindessm/fix-emailkey-variable
Fix variable name emailkey which should be globalkeys.
2014-09-08 20:20:03 +01:00
Nick O'Leary
afa201790d Merge pull request #387 from hindessm/fix-scope-of-data
Avoid wasting time preparing the payload if operation is a delete.
2014-09-08 20:19:54 +01:00
Dave C-J
cba4791b65 MQTT node better check for topic existing 2014-09-08 20:19:25 +01:00
Mark Hindess
3ec07a9161 Remove reference to undefined variable 'node'. 2014-09-08 20:19:20 +01:00
Mark Hindess
6368a43a02 Fix base64 encoding of msg.payload in UDP out node. 2014-09-08 20:13:08 +01:00
Mark Hindess
39d0419b65 Remove spurious dollar. 2014-09-08 20:04:11 +01:00
Dave C-J
ab4d3c025e MQTT node should only send message if topic actually specified (string) 2014-09-08 20:01:28 +01:00
Mark Hindess
19c3a7f36c Fix variable name, emailkey should be globalkeys.
Also, remove unused reference to util.
2014-09-08 19:59:22 +01:00
Mark Hindess
22b32b1684 Avoid wasting time preparing the payload if operation is a delete. 2014-09-08 19:53:03 +01:00
Nick O'Leary
1a5a548fbf Incorrect credentials in mongo node
Closes #386
2014-09-08 19:25:12 +01:00
Nick O'Leary
c03db99a21 Merge pull request #363 from kylegordon/patch-1
Provide a process.title
2014-09-08 14:58:22 +01:00
Nick O'Leary
141c8a1faf Merge pull request #385 from zobalogh/delay-test-fix
Adding drop check to Delay tests
2014-09-08 14:48:06 +01:00
Nick O'Leary
3e3b388ca7 Prevent adding empty twitter creds
Closes #372
2014-09-08 14:41:39 +01:00
zobalogh
4706b814dd Adding drop check to Delay tests 2014-09-08 14:26:35 +01:00
Nick O'Leary
b3fa866385 Remove last remnants of bootstrap icons from core
Closes #376
2014-09-08 14:18:34 +01:00
Nick O'Leary
e3f72a697e Ignore coveralls upload errors
Part of #299
2014-09-08 14:02:53 +01:00
Dave Conway-Jones
148fbefbbb Merge pull request #377 from hindessm/fa-icon-migration
Fa icon migration
2014-09-08 13:54:32 +01:00
Mark Hindess
3f054bdf7e Migrate to fa icons. 2014-09-08 12:07:39 +01:00
Nick O'Leary
995268c5df Handle node imports containing tab nodes
Closes #172
2014-09-08 10:54:06 +01:00
Dave C-J
a03861cb6d Indent range node UI more in style with other nodes. 2014-09-07 22:13:10 +01:00
Dave C-J
426453d925 make tcp and udp node fa icons more consistent 2014-09-07 22:12:25 +01:00
Dave C-J
ef9255a87c set defaults in trigger node rather than confusing placeholders 2014-09-07 22:11:58 +01:00
Dave C-J
5872541b1b Tweak info of watch and file nodes to be more style consistent with others. 2014-09-07 22:11:00 +01:00
Nick O'Leary
6076be011a Merge pull request #379 from hindessm/fix-undefined-class-on-labels
Correct logic to avoid 'undefined' label style being inserted.
2014-09-05 23:12:55 +01:00
Nick O'Leary
67d5bc2399 Merge pull request #380 from hindessm/trivial-html-fixes
Fix two trivial HTML bugs.
2014-09-05 23:12:32 +01:00
Nick O'Leary
c91a3f3f78 Delay node drop immediate not working
Fixes #381
2014-09-05 16:04:35 +01:00
Dave C-J
083dc213f0 Check to see serialport exists before opening in Arduino node
Fixes #382

now warns if chosen serial port doesn't exist - rather than crashing.
So is now recoverable without manually editing flows.

(Also moved to fa-icons and Arduino category)
2014-09-05 15:10:40 +01:00
Nick O'Leary
56768fbf2c HTTP In delete configuration missing errorHandler
Fixes #384
2014-09-05 13:19:05 +01:00
Nick O'Leary
293725afcd Reuse vm context to speed up Function nodes
If the NODE_RED_FUNCTION_TIME environment variable is set, the
function nodes publish a status of how long the function took
to run, in ms.
2014-09-05 10:40:57 +01:00
Mark Hindess
e90054c93c Fix two trivial HTML bugs. 2014-09-04 19:59:30 +01:00
Mark Hindess
553935ecc8 Correct logic to avoid 'undefined' label style being inserted. 2014-09-04 19:56:53 +01:00
Dave C-J
06542d95f2 fix email html fa icons... seemed to get lost in merge conflict 2014-09-04 08:20:13 +01:00
Dave C-J
5bf9819bd1 add comment to main.js - how to enable auto clear of debug on deploy 2014-09-04 08:19:37 +01:00
Dave C-J
fc679adefb Allow TCP node option to break connections per message (and auto
reconnect) - eg for file trnasfer to indicate EOF.

Change to FA icons.
2014-09-03 20:06:29 +01:00
Dave C-J
e136080888 Tiny wrinkle (non critical) in httpin node 2014-09-03 20:04:38 +01:00
Dave C-J
a05c0f4bb2 Fix RPi node - gpio path as per @Croady suggestion 2014-09-03 20:03:52 +01:00
Dave C-J
fa8d31609e fix merge email.js 2014-09-03 19:39:26 +01:00
Dave C-J
7da7887ed2 Add info to IRC node re RAW commands 2014-09-03 19:37:19 +01:00
Nick O'Leary
5a81ce8569 Merge pull request #375 from hindessm/rename-red-utils
Rename RED.utils to RED.util
2014-09-03 13:54:31 +01:00
Mark Hindess
0a009e2a15 Rename RED.utils to RED.util. Fixes #364. 2014-09-03 13:20:45 +01:00
Nick O'Leary
8e78df09da Don't clear selection on ctrl-click
Fixes #373
2014-09-02 16:00:01 +01:00
Nick O'Leary
16048112c6 Merge pull request #370 from jhr007/patch-2
Add checkbox support so config dialogs can save checkbox values
2014-09-01 20:31:17 +01:00
jhr007
5c39e330cb Add checkbox support so config dialogs can save checkbox values 2014-09-01 11:50:29 -05:00
Nick O'Leary
0138eb3f5f Merge pull request #343 from zobalogh/range-tests
Adding range tests
2014-09-01 10:23:55 +01:00
Nick O'Leary
4f36435628 Merge branch 'zobalogh-delay-test' 2014-09-01 10:22:50 +01:00
Nick O'Leary
9876570189 Merge delay node test
Fixes #346
Closes #347
2014-09-01 10:22:29 +01:00
Nick O'Leary
961c9f3fa9 Add ability to tweet images
Closes #117
2014-09-01 10:16:37 +01:00
Nick O'Leary
27e34f20fb Merge pull request #368 from jhr007/patch-1
Update index.html
2014-09-01 09:00:42 +01:00
jhr007
eb1e967be6 Update index.html
Closing head tag
2014-08-31 20:18:12 -05:00
Dave C-J
06e48e9cb1 make IRC node handle RAW messages more cleanly. 2014-08-31 23:50:56 +01:00
Dave C-J
8c8c9b13b9 Addressing the first message bug in #346.
Not closing the Issue (yet) as there still seems to be some discussion re timing.
2014-08-31 13:29:38 +01:00
Dave C-J
42c3ee430f Slight tweak to IRC status updates to clear on start. 2014-08-30 13:24:09 +01:00
Dave C-J
dfc427c192 Downplay twitter geo-area capability (from warn to log) 2014-08-30 13:23:24 +01:00
Dave C-J
c3926f6513 Better template handling in CSV node - (can cope with quoted column names etc) 2014-08-30 13:22:22 +01:00
Dave C-J
64c95f1d1b Make IRC node channel check case-insensitive. Closes #365
Thanks _jhr007_ for the heads up.

Also now handle multiple output channels from a node. 
And add status indicators for connectied/joined.
2014-08-30 10:41:12 +01:00
Nick O'Leary
fae8b35961 Allow spaces in node category names
Fixes #361
2014-08-29 20:37:30 +01:00
Dave C-J
0a3c889cc6 Allow IRC to listen on multiple channels from one or multiple nodes...
Issue #362
2014-08-29 16:41:32 +01:00
Kyle Gordon
98338508d2 Provide a process.title
Set the process.title to 'node-red'.
Helps identify node-red amongst a plethora of other nodejs processes
Aids monitoring systems in identifying running processes
2014-08-29 16:22:01 +01:00
Nick O'Leary
44ec551ed9 Tweak example settings for functionGlobalContext
Make it more obvious there should be a single hash, not multiple
2014-08-29 09:35:14 +01:00
Dave C-J
e256110eac Slight tweak to text spacing in IRC node
(Thanks to _jhr007_ for spotting)

Also taking chance to update to fa icons.

Closes #359
2014-08-28 21:05:00 +01:00
Nick O'Leary
8849f11eb5 Change how hidden input is appended
Fixes #360
2014-08-28 20:56:04 +01:00
Nick O'Leary
6f888068d2 Merge pull request #358 from hindessm/utils-ensure-string
Add ensure string helper for nodes.
2014-08-28 16:53:34 +01:00
Mark Hindess
a9e72858df Add ensure string helper for nodes. 2014-08-28 14:25:41 +01:00
Nick O'Leary
e09ac859d3 Merge pull request #354 from hindessm/redis-string-fix
Make more effort to stringify sensibly when storing in redis.
2014-08-28 14:15:53 +01:00
Nick O'Leary
e1ba2f7254 Merge pull request #357 from hindessm/fix-help
Fix --help so it doesn't crash.
2014-08-28 14:15:23 +01:00
Mark Hindess
7abae51b42 Fix --help so it doesn't crash. 2014-08-28 13:59:56 +01:00
Nick O'Leary
8febfbe329 Disable tail truncated test until it behaves on Travis 2014-08-28 00:22:12 +01:00
Nick O'Leary
bac288fa52 Add more delays to tail node test 2014-08-28 00:14:25 +01:00
Nick O'Leary
691ef12e04 Add more tail node tests
- add 'file doesn't exist initially' text
- remove resource file as it is programmatically modified by the test
- tweak test checking in truncated file test
2014-08-27 23:29:26 +01:00
Nick O'Leary
96a0a9d2d2 Update credential in edit form when left unchanged
Related to #355
2014-08-27 22:06:45 +01:00
Nick O'Leary
2dac28a421 Add hidden input to prevent edit form submit on enter
closes #349
2014-08-27 21:48:27 +01:00
Mark Hindess
025e4ab6d1 Make more effort to stringify sensibly when storing in redis. 2014-08-27 12:41:56 +01:00
Dave C-J
2d92b44f52 Tidy up tail node tests 2014-08-27 10:41:25 +01:00
Dave C-J
6b04d512ae add consistent timeouts to tail file write tests 2014-08-27 10:08:44 +01:00
Dave C-J
df751be331 Make all tail node test writres are sync 2014-08-27 09:51:30 +01:00
Dave C-J
c38aa91a4d put Debug node active flag back to boolean. (mea culpa) 2014-08-25 15:42:12 +01:00
Dave C-J
a74009caa9 more consistent use of "true"/"false" for options in Debug node 2014-08-25 15:37:31 +01:00
Dave C-J
40c87ab14c Make defaults into strings rather than boolean.
Fixes #350
2014-08-25 15:09:52 +01:00
Dave C-J
ecbf4add6b Modify Tail node to only send new messages
Now with test that works with it.
Part of Issue #326
Now need to redo with libs that support windows.
2014-08-22 12:44:55 +01:00
Dave C-J
a8ade083d4 Add QoS and Retain to the MQtt node options 2014-08-22 12:44:54 +01:00
Dave C-J
f1d2b7ffa0 change file and mongodb nodes to use fa icons 2014-08-22 12:44:54 +01:00
Nick O'Leary
ec5aaa5bfb Update header buttons 2014-08-22 11:07:32 +01:00
Nick O'Leary
7a9696526a Fix header css and tidy up 2014-08-21 21:48:08 +01:00
Nick O'Leary
7176f3ee2b Add declarative menu structure 2014-08-20 21:58:54 +01:00
Nick O'Leary
47b4ebc92f Check for null when undoing history actions 2014-08-20 17:05:01 +01:00
Nick O'Leary
44a51e849d Info sidebar tweaks 2014-08-19 23:46:18 +01:00
Nick O'Leary
1e33843798 Move main ui over to font-awesome 2014-08-19 22:58:52 +01:00
zobalogh
3823150e46 Adding range node tests 2014-08-19 11:45:17 +01:00
Nick O'Leary
7042d87444 Handle missing file/modules in Add node api 2014-08-18 21:59:19 +01:00
Nick O'Leary
4d6846047f Dynamic node add not listing added types properly 2014-08-18 21:12:15 +01:00
Nick O'Leary
8ddfa9eb29 Migrate email node to credentials system 2014-08-18 17:15:14 +01:00
Nick O'Leary
c0842455b9 Update email node to use nodemailer 1.x api
Fixes #334
2014-08-18 15:47:37 +01:00
Nick O'Leary
e8c4caaf74 Remove cheerio parse of node html files on start-up 2014-08-18 14:34:47 +01:00
Nick O'Leary
76e8512869 Temporarily remove Mongo Update option
Part of #335
2014-08-18 11:30:48 +01:00
Nick O'Leary
907ce5c079 MQTT Node: allow publishing of Buffer payloads
Closes #341
2014-08-18 11:27:52 +01:00
Nick O'Leary
3c31ef4643 Merge pull request #336 from zobalogh/switch-test
Adding Switch Node tests
2014-08-18 11:15:04 +01:00
Nick O'Leary
9734c755ae Merge pull request #342 from zobalogh/change-node-tests
Adding Change Node tests
2014-08-18 11:14:04 +01:00
zobalogh
89825dae04 Adding Change Node tests 2014-08-15 12:19:07 +01:00
zobalogh
ce4d44ea48 Adding Switch Node tests 2014-08-14 11:27:21 +01:00
Nick O'Leary
105b25287f Reverting tail node change to fix build
Fixes #337

A useful change but need the corresponding tests to be updated and also properly publicised on the mailing list as it is a change in behaviour.
2014-08-13 22:43:15 +01:00
Dave Conway-Jones
b3c3bffeaa tweak tail.js to only send changed/new lines. 2014-08-12 19:33:41 +01:00
Nick O'Leary
972e6fc6b3 Tidy editor code to pass jshint 2014-08-08 00:01:35 +01:00
Nick O'Leary
fb2f307a26 Remove unnecessary semicolon 2014-08-07 22:24:02 +01:00
Nick O'Leary
58c2f5dd3d Add remove node api 2014-08-07 22:20:06 +01:00
Nick O'Leary
43ad8706aa Update tail node tests to use resource file 2014-08-07 14:55:34 +01:00
Nick O'Leary
fde77cec5d Add rest endpoint for add/remove and send updates to editor 2014-08-07 13:46:38 +01:00
Nick O'Leary
15494dda84 Merge pull request #332 from zobalogh/tail-done-fix
Fixing test termination
2014-08-07 13:34:46 +01:00
Nick O'Leary
c6a98da256 Merge pull request #331 from hbeeken/issue-326
Proposed fix for Issue #326
2014-08-07 13:33:57 +01:00
Nick O'Leary
2e2b5ad13e Merge pull request #327 from hbeeken/html-node-tests
Tests for HTML node
2014-08-07 13:30:13 +01:00
zobalogh
ea22ffa2bf Fixing test termination 2014-08-07 13:23:20 +01:00
hbeeken
fadd2167f5 Closing file handles to fix test failures on windows 2014-08-07 12:03:03 +01:00
hbeeken
82fb15896c Tests for HTML node 2014-08-06 11:34:30 +01:00
Nick O'Leary
960d15491d Add node add/remove/enable/disable apis to registry 2014-08-04 17:12:54 +01:00
Nick O'Leary
495dd3f2e0 Merge pull request #325 from hbeeken/fix-registry-tests-for-windows
Using path.sep rather than "/" so tests run on windows as well as linux
2014-08-04 11:35:32 +01:00
hbeeken
8c0c843367 Using path.sep rather than "/" so tests run on windows as well as linux 2014-08-04 11:27:26 +01:00
Nick O'Leary
4ac4995762 Merge pull request #320 from hbeeken/xmlparser-node-tests
Adding tests for XML parser node
2014-08-04 11:14:21 +01:00
hbeeken
118c50ce8e Fixing tests by clearing out the node registry between tests. 2014-08-04 10:59:08 +01:00
hbeeken
38c541361e Removing unreachable catch blocks 2014-08-04 10:57:00 +01:00
hbeeken
8eb8ac0f88 Adding tests for XML parser node 2014-08-04 10:56:49 +01:00
Nick O'Leary
f7f58a2347 Add registry test for node module loading 2014-08-03 21:17:24 +01:00
Nick O'Leary
1697aee9f6 Add loadNode api to registry.js 2014-08-01 23:42:01 +01:00
Nick O'Leary
3ee98e730d Ensure test resource icons directory exists 2014-08-01 22:23:32 +01:00
Nick O'Leary
d6c5f9b57f Add debug for eventEmitSpy
Debugging a travis-only build failure
2014-08-01 22:19:33 +01:00
Nick O'Leary
882b593ba4 Add missing registry test resources 2014-08-01 22:09:40 +01:00
Nick O'Leary
79e9641c09 Big rework of registry.js
Part of #322

Loads node.html files before node.js files

Adds helper.unload which must be called by node tests
to clear the registery of nodes
2014-08-01 22:05:49 +01:00
Nick O'Leary
a869642705 Split up tests in gruntfile 2014-08-01 22:02:12 +01:00
Nick O'Leary
8ee5be7031 Restore stubs in credentials_spec 2014-08-01 21:56:27 +01:00
Nick O'Leary
8e8e13a3a2 Add comms.stop to tidy up keepalive timer 2014-08-01 21:55:05 +01:00
Nick O'Leary
6c464ed3a4 Merge pull request #324 from zobalogh/tail-test
Adding tail node tests
2014-08-01 16:30:04 +01:00
zobalogh
716d0c1135 Adding tail node tests 2014-08-01 16:22:02 +01:00
Nick O'Leary
989f3459d5 Merge pull request #323 from zobalogh/further-registry-tests
Adding test for registry cheerio
2014-07-31 17:25:31 +01:00
Nick O'Leary
b8f40d4e39 Merge pull request #319 from hindessm/restrict-library-entry-names
Prohibit library entry names from containing '../'.
2014-07-31 17:24:57 +01:00
zobalogh
401afcbadd Adding test for registry cheerio 2014-07-31 16:49:19 +01:00
Nick O'Leary
a170623b4c Merge pull request #315 from zobalogh/registry-test-delivery
Adding registry node load tests
2014-07-31 14:54:56 +01:00
zobalogh
d9544e4ac5 Adding registry node load tests 2014-07-31 14:43:26 +01:00
Nick O'Leary
530a1fce81 Merge pull request #321 from hbeeken/remove-unnecessary-require
Remove duplicate require("util")
2014-07-31 14:19:53 +01:00
Mark Hindess
b7428ab627 Prohibit library entry names from containing '../'. 2014-07-31 13:59:24 +01:00
hbeeken
5a714242a4 Remove duplicate require("util") 2014-07-31 13:53:11 +01:00
Nick O'Leary
bc8ea998bb Merge pull request #318 from hbeeken/json-node-tests
JSON node tests
2014-07-31 12:44:17 +01:00
hbeeken
e179753853 Error path tests for 70-JSON.js 2014-07-31 11:02:55 +01:00
hbeeken
80676da300 Adding test for JSON node 2014-07-31 11:02:43 +01:00
Nick O'Leary
f4ffdce3d0 Merge pull request #317 from hindessm/fix-flows-missing-types-logic
Fix missing types logic.
2014-07-31 10:01:27 +01:00
Nick O'Leary
32d14ddbcf Merge pull request #316 from hindessm/fix-server-http-response
Fix HTTP response; 204 should be code not body.
2014-07-31 10:00:00 +01:00
Nick O'Leary
3e76e73839 Merge pull request #312 from hbeeken/test-credentials-registerEndpoint
Adding unit tests for credentials.registerEndpoint
2014-07-31 09:59:42 +01:00
hbeeken
9c0b65a4c2 Adding tests for credentials.registerEndpoint 2014-07-31 08:41:43 +01:00
Mark Hindess
2f882913f0 Fix missing types logic.
missingTypes.length was greater than zero so the only way it can be
zero immediately afterwards is if splice is called so move the zero
check after the splice.

Despite what istanbul reports this function is covered by the tests.
2014-07-31 08:36:54 +01:00
Mark Hindess
e407fc857e Fix HTTP response; 204 should be code not body. 2014-07-31 07:04:10 +01:00
Nick O'Leary
30a94bdaf5 Merge pull request #313 from hindessm/more-comms-tests
More comms tests
2014-07-30 17:03:10 +01:00
Mark Hindess
195f581da7 Remove redundant assignment.
The publish immediately overwrites this time so there isn't much
point setting it.
2014-07-30 14:33:31 +01:00
Mark Hindess
a8c491bf2b Add comms keep alive tests. 2014-07-30 14:33:31 +01:00
Mark Hindess
8e30910065 Add webSocketKeepAliveTime setting to aid testing. 2014-07-30 14:33:31 +01:00
Nick O'Leary
47f7cb52d8 Merge pull request #311 from hbeeken/test-credentials-extract
Adding unit tests for credentials.extract
2014-07-30 12:51:49 +01:00
Nick O'Leary
14c36687e0 Merge pull request #310 from hindessm/more-node-tests
More tests for the Node base class.
2014-07-30 12:51:41 +01:00
hbeeken
a3cb0e996d Adding unit tests for credentials.extract 2014-07-30 10:56:42 +01:00
Mark Hindess
bbdfa03687 Test Node status method. 2014-07-30 10:39:48 +01:00
Mark Hindess
d7b3e86096 Test Node send for req/res behaviour. 2014-07-30 10:29:37 +01:00
Nick O'Leary
1ce4765ed8 Merge pull request #309 from hindessm/more-function-node-tests
Add more tests for function node.
2014-07-30 09:54:36 +01:00
Nick O'Leary
a9ee417c1f Merge pull request #308 from hindessm/avoid-debug-payload-corruption
Avoid corrupting message payload while logging.
2014-07-30 09:54:10 +01:00
Mark Hindess
53d9eab94e Add more tests for function node. 2014-07-30 09:32:17 +01:00
Mark Hindess
96ea81894d Avoid corrupting message payload while logging. 2014-07-30 08:17:40 +01:00
Nick O'Leary
b1f14031a9 Merge pull request #303 from hbeeken/test-registerType-with-credentials
Adding test for index.registerType with credentials defined
2014-07-29 23:56:52 +01:00
Nick O'Leary
575d166947 Merge pull request #307 from hindessm/start-testing-nodes
Some initial tests for core nodes.
2014-07-29 23:55:54 +01:00
hbeeken
796810f460 Test to ensure credential definition is defined after index.registerType 2014-07-29 14:58:49 +01:00
Mark Hindess
74ae2eca3e Start adding tests for nodes. 2014-07-29 12:59:42 +01:00
Nick O'Leary
ac1e750f14 Merge pull request #304 from hbeeken/test-credentials
Add test for case if loading credentials from storage has an error
2014-07-29 11:24:18 +01:00
Nick O'Leary
a396bca06a Merge pull request #306 from hindessm/simplify-debug-node
Simplify debug node message processing.
2014-07-29 10:24:42 +01:00
Mark Hindess
deff93f95e Simplify debug node message processing.
Make processing more consistent irrespective of complete flag.
Avoid processing when node is inactive.
Avoid duplicate code.
2014-07-29 09:41:47 +01:00
Dave C-J
78edf89e52 Allow File node to write out buffers of binary data 2014-07-29 08:57:27 +01:00
Nick O'Leary
00a9542edf Fix typo in example file 2014-07-29 08:55:29 +01:00
Nick O'Leary
31d72b2193 Merge pull request #305 from hbeeken/test-index-remove-redundant-test
Remove redundant "can be required without errors" test
2014-07-28 20:50:16 +01:00
hbeeken
d09c992ecc Remove redundant "can be required without errors" test 2014-07-28 20:24:01 +01:00
Nick O'Leary
e07a523c3b Fix node html compression and refactor registry 2014-07-28 16:37:39 +01:00
Nick O'Leary
3d31a0abca Merge pull request #302 from hbeeken/fix-ui-windows-test-failure
Removing assumption that /tmp exists so test runs on Windows
2014-07-28 15:47:12 +01:00
hbeeken
132dcdeb43 Add test for case if loading credentials from storage has an error 2014-07-28 14:29:35 +01:00
hbeeken
50b28842a4 Removing assumption that /tmp exists so test runs on Windows 2014-07-28 12:10:13 +01:00
Nick O'Leary
536a0c9142 Only trigger dbl click on single node
Fixes #301
2014-07-27 22:08:27 +01:00
Nick O'Leary
76a6730ef4 Merge pull request #289 from zobalogh/storage-interface-dev
Defining storage interface
2014-07-25 15:00:40 +01:00
Nick O'Leary
0c8b54253a Merge pull request #300 from zobalogh/ui-caller-delivery
Removing accidental requires
2014-07-25 15:00:22 +01:00
zobalogh
1f09c29aeb Removing accidental requires 2014-07-25 14:50:54 +01:00
zobalogh
d58788f721 Defining storage interface. 2014-07-25 14:44:15 +01:00
Nick O'Leary
e299baf1a0 Refactor inner workings of registry.js 2014-07-24 23:16:41 +01:00
Nick O'Leary
af1bcf33c1 Merge pull request #297 from zobalogh/ui-caller-delivery
Adding UI unit tests
2014-07-24 16:26:45 +01:00
Nick O'Leary
7abda9bc52 Merge pull request #298 from hindessm/test-comms
Add comms tests
2014-07-24 15:29:06 +01:00
Mark Hindess
2c1da2d546 Add comms tests. 2014-07-24 14:47:45 +01:00
Mark Hindess
8506fd0c4b Do not crash on malformed json message on websocket. 2014-07-24 14:46:04 +01:00
zobalogh
6c093eef99 Fixing settings usage in UI 2014-07-24 14:35:01 +01:00
zobalogh
12a06cacce Adding UI unit tests 2014-07-24 14:35:01 +01:00
Nick O'Leary
b50b23318b Merge pull request #295 from hbeeken/test-node-index
Adding unit test for nodes/index.js
2014-07-24 12:36:52 +01:00
Nick O'Leary
166a798c09 Merge pull request #293 from hindessm/remove-some-unused-variables
Remove some unused variables.
2014-07-24 12:35:54 +01:00
Nick O'Leary
4096589d21 Fix README link and add badges
Closes #296
2014-07-24 12:33:57 +01:00
hbeeken
2e86a41944 Adding unit test for nodes/index.js 2014-07-24 09:41:47 +01:00
Nick O'Leary
6bc4b235bb Merge pull request #291 from hindessm/test-library
Add library tests
2014-07-23 23:06:12 +01:00
Nick O'Leary
38390c6285 Merge pull request #292 from hindessm/handle-storage-error
Fail with error rather than silently on storage init problems.
2014-07-23 23:05:39 +01:00
Mark Hindess
e96fff573d Remove some unused variables. 2014-07-23 23:04:08 +01:00
Nick O'Leary
16a5aa7368 Merge pull request #294 from hindessm/trivial-whitespace-fixes
Trivial whitespace fixes
2014-07-23 23:03:37 +01:00
Mark Hindess
f331d906b4 Fail with error rather than silently on storage init problems. 2014-07-23 22:54:16 +01:00
Mark Hindess
d7445a5bb9 Replace tabs with 4 space indent. 2014-07-23 22:10:27 +01:00
Mark Hindess
6c4611a934 Fix EOL to be dos or unix not both in same file. 2014-07-23 22:07:02 +01:00
Mark Hindess
5b5b7d2be1 Add library tests 2014-07-23 21:38:57 +01:00
Nick O'Leary
55679694c9 HTTP In - fix header iterator 2014-07-23 21:28:53 +01:00
Nick O'Leary
c079576e49 Remove websocket listeners on close
Fixes #285
2014-07-23 21:18:07 +01:00
Nick O'Leary
5179cc77f5 Merge pull request #290 from hindessm/unused-red-vars
Remove unused references to red/red.js
2014-07-23 20:50:38 +01:00
Mark Hindess
406581d522 Remove unused references to red/red.js 2014-07-23 20:02:28 +01:00
Nick O'Leary
9a60294813 Merge pull request #286 from zobalogh/master
Adding a unit test that checks if every .js file in the core
2014-07-23 13:07:11 +01:00
Dave C-J
82036dd84a Simple fix to check/force http: to close #288
Checks url starts http: or https: - if not add http: - at least then it breaks gently.
Also add resultant url to any error payload if request  fails in order to make debug easier.
2014-07-23 12:09:34 +01:00
zobalogh
b29062a931 Add test that every source file has a test. 2014-07-23 11:40:46 +01:00
Nick O'Leary
14a1899c23 Merge pull request #287 from hindessm/spurious-require-of-events-singleton
Remove spurious require of the events singleton.
2014-07-23 10:19:05 +01:00
Mark Hindess
d51eadb6c2 Remove spurious require of the events singleton. 2014-07-22 12:43:02 +01:00
Nick O'Leary
bead24e760 HTTP In node: Check credentials exist before using 2014-07-22 11:33:52 +01:00
Dave C-J
0b308deb79 Slight tidy to MQTT - move to fa icons - use built in close method. 2014-07-21 20:29:10 +01:00
Nick O'Leary
d1300c0632 Remove unnecessary semi-colon 2014-07-21 16:18:22 +01:00
Nick O'Leary
014fca2d61 Add some function-level docs 2014-07-21 16:07:28 +01:00
Nick O'Leary
fea6280bff Tidy up runtime credentials 2014-07-21 15:56:38 +01:00
Nick O'Leary
7687cf6661 Merge pull request #283 from hindessm/missing-require-util
Add missing util require.
2014-07-21 15:22:15 +01:00
Mark Hindess
63ebee22dd Add missing require. 2014-07-21 13:29:54 +01:00
Nick O'Leary
4f8ddad935 Merge pull request #282 from hindessm/more-node-tests
Test that wires to non-existent nodes are ignored.
2014-07-21 10:08:49 +01:00
Dave Conway-Jones
bd70c4b6e7 Merge pull request #281 from hindessm/trivial-switch-spelling-fix
Trivial spelling fix.
2014-07-21 09:57:59 +01:00
Mark Hindess
1414308179 Test that wires to non-existent nodes are ignored. 2014-07-21 09:26:48 +01:00
Mark Hindess
fd6682cfce Trivial spelling fix. 2014-07-21 08:54:37 +01:00
Nick O'Leary
9d481858a0 Update twitter node to new credential api 2014-07-20 22:00:02 +01:00
Nick O'Leary
4302deb5a6 Change credential boolean prefix 2014-07-20 20:42:41 +01:00
Nick O'Leary
d67a54a66a Update HTTP Request node to new credentials api 2014-07-19 00:26:46 +01:00
Nick O'Leary
b604db83f6 Tweak the credential handling
- use node.credentials rather than node._creds for consistency with the runtime
 - simplify the structure of node.credentials
2014-07-19 00:25:22 +01:00
Nick O'Leary
760dd022dc Migrate MQTT nodes to new credentials api 2014-07-19 00:25:22 +01:00
Nick O'Leary
c379f1b197 Migrate mongo node to new credential api 2014-07-19 00:25:22 +01:00
Dave C-J
4770a06679 yet more JShint cleaning. 2014-07-18 21:49:48 +01:00
Dave C-J
252135532d more JShint cleaning and fa icons added 2014-07-18 21:49:20 +01:00
Dave C-J
aaab0d0d0b Add B+ GPIO support to Pi Node 2014-07-18 15:08:16 +01:00
Nick O'Leary
aa35484a30 Prepopulate node credentials if present 2014-07-18 14:23:32 +01:00
Nick O'Leary
a6a0352b70 Add credential registration to RED.nodes.registerType 2014-07-18 14:20:49 +01:00
Nick O'Leary
f80c41058c Properly escape html entities in debug
Fixes #276
2014-07-17 22:13:04 +01:00
Nick O'Leary
84a0e8ceff Add version information to /settings 2014-07-17 21:32:30 +01:00
Dave C-J
8b6c14b05d update mongodb to fa-icons and fix name position in edit config... 2014-07-17 17:21:35 +01:00
Nick O'Leary
cb854c40ba Merge pull request #278 from hindessm/fix-jshint-of-tests
Fix jshint 'tests' definition.
2014-07-17 16:12:16 +01:00
Mark Hindess
bf4369a01e Fix jshint 'tests' definition. 2014-07-17 15:51:21 +01:00
Nick O'Leary
8f3de41049 Merge pull request #277 from hindessm/realistic-test-coverage
Make test coverage figure more realistic.
2014-07-17 12:21:51 +01:00
Dave C-J
fea68d4eda add strict to redisout and fa-icons 2014-07-17 10:25:52 +01:00
Mark Hindess
2778c38b55 Add trivial tests to make coverage figure more realistic. 2014-07-17 09:16:43 +01:00
Mark Hindess
67bd4f373f Move tests to match source hierarchy. 2014-07-17 09:16:43 +01:00
Nick O'Leary
2b423fe9be Merge pull request #274 from hindessm/redis-status
Add status support to the redisout node.
2014-07-17 09:07:29 +01:00
Nick O'Leary
3bc4e7125b Merge pull request #275 from hindessm/add-missing-license-header
Add missing license header.
2014-07-17 09:06:45 +01:00
Mark Hindess
8cedf76b70 Add missing license header. 2014-07-17 08:08:24 +01:00
Mark Hindess
79853d8583 Add status support to the redisout node. 2014-07-16 23:10:34 +01:00
Nick O'Leary
17a83436b3 Merge pull request #273 from hindessm/trivial-mqtt-var-cleanup
Trivial mqtt var cleanup
2014-07-16 22:10:28 +01:00
Mark Hindess
5073cf8dd7 Reduce scope of variable declaration to be consistent with MQTTInNode code. 2014-07-16 21:45:02 +01:00
Mark Hindess
77f6652fa9 Remove spurious variable declaration. 2014-07-16 21:45:02 +01:00
Nick O'Leary
3756e41522 Merge pull request #271 from Belphemur/test-creds
Correcting setFlow test
2014-07-16 12:15:50 +01:00
Antoine Aflalo
ac889e18d2 Correcting setFlow test
Because of the change made into the credentials, the saveCredentials needs to be defined for the setFLow to work
2014-07-16 13:25:43 +03:00
Nick O'Leary
9650b3ed38 Merge pull request #270 from hindessm/ignore-coverage
Ignore the test coverage directory.
2014-07-16 10:57:44 +01:00
Nick O'Leary
b7a83383c9 Merge pull request #268 from hbeeken/test-coverage
Adding unit test for credentials.clean
2014-07-16 10:53:25 +01:00
Nick O'Leary
d4919e27bd Merge pull request #251 from Belphemur/credentials-pr
Rewrite credentials API to work with save on deploy.
2014-07-16 10:41:01 +01:00
Mark Hindess
4f6e76cace Ignore the test coverage directory. 2014-07-16 10:19:39 +01:00
Antoine Aflalo
4d97d9d300 Rewrite credentials API to work with save on deploy. 2014-07-16 11:25:40 +03:00
hbeeken
1419a79933 Adding unit test for credentials.clean 2014-07-16 09:25:08 +01:00
Nick O'Leary
cfd590a397 Merge pull request #267 from hindessm/flows-tests
Flows tests
2014-07-15 17:03:16 +01:00
Nick O'Leary
d67074f4b7 Merge pull request #269 from zobalogh/master
Removing orphaned function: localfilesystem.writeFile(root,path,meta,body,res)
2014-07-15 17:01:27 +01:00
zobalogh
4a514b9060 Removing orphaned function. 2014-07-15 15:32:56 +01:00
Mark Hindess
8e32427109 Add setFlows test. 2014-07-14 22:00:09 +01:00
Mark Hindess
fe9ff0a297 Fix jshint complaints. 2014-07-14 21:46:36 +01:00
Mark Hindess
7281d273a1 Remove unused code. 2014-07-14 21:45:03 +01:00
Mark Hindess
d4548deeb3 Add node flows tests. 2014-07-14 21:44:34 +01:00
Dave Conway-Jones
debd5c4496 Spelling correctin http node info, close #266 2014-07-14 09:26:09 +01:00
Dave C-J
62496d80d5 tray/catch error in Websocket node to close #264 2014-07-13 17:39:56 +01:00
Dave C-J
bc53d302ff and add fa icons to websocket 2014-07-11 21:32:51 +01:00
Dave C-J
1a1c6a73b6 Update icon to fa icons for parser nodes and sentiment 2014-07-11 21:01:16 +01:00
Dave Conway-Jones
9158766297 Merge pull request #262 from hindessm/improve-node-coverage
Improve red/nodes/Node.js coverage and minor refactoring
2014-07-11 14:04:27 +01:00
Dave Conway-Jones
b84aba5c98 minor spelling correction 2014-07-11 08:20:47 +01:00
Mark Hindess
66459f1bd6 Short circuit the null message case. 2014-07-10 14:25:32 +01:00
Mark Hindess
74335990e3 Add test for the null message case. 2014-07-10 14:25:32 +01:00
Mark Hindess
d371511d1d Refactor common log code. 2014-07-10 14:25:32 +01:00
Mark Hindess
0a7bd848c6 Add more Node tests. 2014-07-10 14:25:32 +01:00
Dave C-J
de352dcdc2 Change template node to allow templating of any property of msg 2014-07-10 08:23:44 +01:00
Nick O'Leary
242fe1ef86 Merge pull request #260 from hindessm/test-coverage
Test coverage on coveralls.io
2014-07-09 10:00:10 +01:00
Nick O'Leary
3db84d5bf1 HTTP Out payload: relax null checking 2014-07-09 09:51:43 +01:00
Nick O'Leary
4d031891e5 Http Out: remove excess debug 2014-07-09 09:48:09 +01:00
Nick O'Leary
a7e7254317 Handle null response payloads 2014-07-09 09:46:10 +01:00
Nick O'Leary
8e24a958b7 HTTP Out - stringed the wrong bit 2014-07-09 09:43:02 +01:00
Nick O'Leary
bd80cf4f83 HTTP Out - header properties must be strings 2014-07-09 09:08:43 +01:00
Mark Hindess
abf5944316 Report coverage to build log and coveralls. 2014-07-09 07:45:58 +01:00
Mark Hindess
85a8e7283f Have travis generate test coverage using istanbul. 2014-07-09 07:45:58 +01:00
Dave C-J
ac7448759b Revert Alt zoom change as it doesn't work in FF... 2014-07-08 14:17:37 +01:00
Dave C-J
c10c687653 Add TCP request node to TCP node "family" 2014-07-08 13:45:00 +01:00
Dave C-J
2c5d5148b8 tweak tail node to use -F (thanks to tip from Mike Smerekov)
pending other changes
2014-07-08 12:28:02 +01:00
Dave C-J
6fb9739245 Add strict to function node 2014-07-08 12:27:09 +01:00
Dave C-J
9bc9994354 Fix for missingType(s) - to close #259
(thanks to toksea for spotting it)
2014-07-08 08:49:48 +01:00
Dave C-J
35965e55b5 Add on error method to exec node... (should have been there before :-) 2014-07-08 08:48:46 +01:00
Dave C-J
4532cadb14 Add Alt zoom to help page (to be complete) 2014-07-08 08:47:44 +01:00
Nick O'Leary
6e956ef03a Merge pull request #254 from TJKoury/master
Added dynamic category capability
2014-07-02 22:23:52 +01:00
tjkoury
4afda2f53b Added deprecated to exclusion list 2014-07-02 17:20:16 -04:00
Nick O'Leary
9db1166ce0 Fix logHandler array handling
Fixes #257
2014-07-02 16:31:02 +01:00
Nick O'Leary
3de2f3d1da Add jshint:core to default build 2014-07-01 23:50:17 +01:00
Nick O'Leary
9f3233175b Fix node html generation 2014-07-01 23:48:26 +01:00
Nick O'Leary
649c82f7d7 Fix all jshint warnings in core code 2014-07-01 23:46:25 +01:00
Nick O'Leary
c18119f26e Debug pane should use local timezone 2014-07-01 23:14:44 +01:00
tjkoury
ef6a0e5947 Added default sub-categories to the core categories; 2014-06-30 23:31:06 -04:00
Dave C-J
045f658ef9 More defensive handling of missing filename in file node.
(in line with jshint)
2014-06-30 23:23:01 +01:00
Dave C-J
c7f0f9639a tidy up jsHint errors in exec and trigger nodes
Add "use strict" to the sample node
2014-06-30 20:44:35 +01:00
Dave C-J
52779ac518 Tidy up jsHinst errors in parser nodes 2014-06-30 20:44:01 +01:00
Dave C-J
790ad8eb68 Tidy up jsHint errors in parser nodes 2014-06-30 20:43:31 +01:00
tjkoury
e43b342048 Removed unnecessary console.log 2014-06-30 11:33:46 -04:00
tjkoury
5959da2d37 Added dynamic category capability 2014-06-30 11:31:02 -04:00
602 changed files with 104206 additions and 26602 deletions

30
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,30 @@
## Before you hit that Submit button....
This issue tracker is for problems with the Node-RED runtime, the editor or the core nodes.
If your issue is:
- a general 'how-to' type question,
- a feature request or suggestion for a change,
- or problems with 3rd party (`node-red-contrib-`) nodes
please use the [mailing list](https://groups.google.com/forum/#!forum/node-red), [slack team](https://nodered.org/slack) or ask 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.
## So you have a real issue to raise...
To help us understand the issue, please fill-in as much of the following information as you can:
### What are the steps to reproduce?
### What happens?
### What do you expect to happen?
### Please tell us about your environment:
- [ ] Node-RED version:
- [ ] node.js version:
- [ ] npm version:
- [ ] Platform/OS:
- [ ] Browser:

30
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,30 @@
## Before you hit that Submit button....
Please read our [contribution guidelines](https://github.com/node-red/node-red/blob/master/CONTRIBUTING.md)
before submitting a pull-request.
## Types of changes
What types of changes does your code introduce?
_Put an `x` in the boxes that apply_
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
If you want to raise a pull-request with a new feature, or a refactoring
of existing code, it **may well get rejected** if it hasn't been discussed on
the [mailing list](https://groups.google.com/forum/#!forum/node-red) or
[slack team](https://nodered.org/slack) first.
## Proposed changes
Describe the nature of this change. What problem does it address?
## Checklist
_Put an `x` in the boxes that apply_
- [ ] I have read the [contribution guidelines](https://github.com/node-red/node-red/blob/master/CONTRIBUTING.md)
- [ ] For non-bugfix PRs, I have discussed this change on the mailing list/slack team.
- [ ] I have run `grunt` to verify the unit tests pass
- [ ] I have added suitable unit tests to cover the new/changed functionality

20
.gitignore vendored
View File

@@ -1,7 +1,19 @@
node_modules
.DS_store
.config.json
.dist
.jshintignore
.npm
.project
.sessions.json
.settings
.tern-project
*.backup
*_cred*
coverage
credentials.json
flows*.json
flows.backup
*_cred*
nodes/node-red-nodes/
.npm
node_modules
public
locales/zz-ZZ
nodes/core/locales/zz-ZZ

19
.jshintrc Normal file
View File

@@ -0,0 +1,19 @@
{
"asi": true, // allow missing semicolons
"curly": true, // require braces
"eqnull": true, // ignore ==null
//"eqeqeq": true, // enforce ===
"freeze": true, // don't allow override
"indent": 4, // default indent of 4
"forin": true, // require property filtering in "for in" loops
"immed": true, // require immediate functions to be wrapped in ( )
"nonbsp": true, // warn on unexpected whitespace breaking chars
//"strict": true, // commented out for now as it causes 100s of warnings, but want to get there eventually
//"unused": true, // Check for unused functions and variables
"loopfunc": true, // allow functions to be defined in loops
//"expr": true, // allow ternery operator syntax...
"shadow": true, // allow variable shadowing (re-use of names...)
"sub": true, // don't warn that foo['bar'] should be written as foo.bar
"proto": true, // allow setting of __proto__ in node < v0.12,
"esversion": 6 // allow es6
}

View File

@@ -1,4 +1,5 @@
.git/*
*.json
lib/*
/Gruntfile.js
/.git/*
/lib/*
*.backup
/public/*

7
.npmignore Normal file
View File

@@ -0,0 +1,7 @@
.settings
.jshintignore
.jshintrc
.project
.tern-project
.travis.yml
.git

View File

@@ -1,7 +1,20 @@
sudo: false
language: node_js
before_install:
- npm install -g npm@~1.4.18
env:
- CXX="g++-4.8"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- gcc-4.8
node_js:
- "0.10"
- "0.8"
- "8"
- "6"
- "4"
script:
- istanbul cover ./node_modules/.bin/grunt --report lcovonly && istanbul report text && ( cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js || true ) && rm -rf coverage
before_script:
- npm install -g istanbul
- npm install coveralls

1089
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

74
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,74 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at team@nodered.org. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View File

@@ -2,10 +2,18 @@
We welcome contributions, but request you follow these guidelines.
- [Raising issues](#raising-issues)
- [Feature requests](#feature-requests)
- [Pull-Requests](#pull-requests)
- [Contributor License Agreement](#contributor-license-agreement)
This project adheres to the [Contributor Covenant 1.4](http://contributor-covenant.org/version/1/4/).
By participating, you are expected to uphold this code. Please report unacceptable
behavior to the project's core team at team@nodered.org.
## Raising issues
Please raise any bug reports on the project's
[issue tracker](https://github.com/node-red/node-red/issues?state=open). Be sure to
Please raise any bug reports on the relevant project's issue tracker. Be sure to
search the list to see if your issue has already been raised.
A good bug report is one that make it easy for us to understand what you were
@@ -20,33 +28,23 @@ At a minimum, please include:
- Version of Node-RED - either release number if you downloaded a zip, or the first few lines of `git log` if you are cloning the repository directly.
- Version of node.js - what does `node -v` say?
## New features
## Feature requests
For feature requests, please raise them on the [mailing list](https://groups.google.com/forum/#!forum/node-red).
## Pull-Requests
### Changes to existing code
if you want to raise a pull-request with a new feature, or a refactoring
of existing code, it may well get rejected if you haven't discussed it on
If you want to raise a pull-request with a new feature, or a refactoring
of existing code, it may well get rejected if you haven't discussed it on
the [mailing list](https://groups.google.com/forum/#!forum/node-red) first.
### New nodes
All contributors need to sign the JS Foundation's Contributor License Agreement.
It is an online process and quick to do. You can read the details of the agreement
here: https://cla.js.foundation/node-red/node-red.
The plugin nature of Node-RED means anyone can create a new node to extend
its capabilities.
If you raise a pull-request without having signed the CLA, you will be prompted
to do so automatically.
We want to avoid duplication as that can lead to confusion. Many of our existing
nodes offer a starting point of functionality. If they are missing features,
we would rather extend them than add separate 'advanced' versions. But the key
to that approach is getting the UX right to not lose the simplicity.
To contribute a new node, please raise a pull-request against the
`node-red-nodes` repository.
Eventually, the nodes will be npm-installable, but we're not there yet. We'll
also have some sort of registry of nodes to help with discoverability.
### Coding standards
@@ -55,28 +53,5 @@ code base. Some basic rules include:
- all files must have the Apache license in the header.
- indent with 4-spaces, no tabs. No arguments.
- opening brace on same line as `if`/`for`/`function`/etc, closing brace on its
own line.
### Contributor License Aggreement
In order for us to accept pull-requests, the contributor must first complete
a Contributor License Agreement (CLA). This clarifies the intellectual
property license granted with any contribution. It is for your protection as a
Contributor as well as the protection of IBM and its customers; it does not
change your rights to use your own Contributions for any other purpose.
You can download the CLAs here:
- [individual](http://nodered.org/cla/node-red-cla-individual.pdf)
- [corporate](http://nodered.org/cla/node-red-cla-corporate.pdf)
If you are an IBMer, please contact us directly as the contribution process is
slightly different.
- opening brace on same line as `if`/`for`/`function` and so on, closing brace
on its own line.

View File

@@ -1,5 +1,5 @@
/**
* Copyright 2013, 2014 IBM Corp.
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,57 +14,497 @@
* limitations under the License.
**/
var path = require("path");
module.exports = function(grunt) {
// Project configuration.
var nodemonArgs = ["-v"];
var flowFile = grunt.option('flowFile');
if (flowFile) {
nodemonArgs.push(flowFile);
}
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
simplemocha: {
options: {
globals: ['expect'],
timeout: 3000,
ignoreLeaks: false,
ui: 'bdd',
reporter: 'tap'
},
all: { src: ['test/*.js'] }
pkg: grunt.file.readJSON('package.json'),
paths: {
dist: ".dist"
},
simplemocha: {
options: {
globals: ['expect'],
timeout: 3000,
ignoreLeaks: false,
ui: 'bdd',
reporter: 'spec'
},
jshint: {
options: {
// http://www.jshint.com/docs/options/
"asi": true, // allow missing semicolons
"curly": true, // require braces
"eqnull": true, // ignore ==null
"forin": true, // require property filtering in "for in" loops
"immed": true, // require immediate functions to be wrapped in ( )
"nonbsp": true, // warn on unexpected whitespace breaking chars
//"strict": true, // commented out for now as it causes 100s of warnings, but want to get there eventually
"loopfunc": true, // allow functions to be defined in loops
"sub": true // don't warn that foo['bar'] should be written as foo.bar
},
all: [
'Gruntfile.js',
'public/red/**/*.js',
'red.js',
'red/**/*.js',
'nodes/**/*.js',
],
tests: {
files: {
src: ['test/*.js']
},
options: {
"expr": true
}
}
all: { src: ['test/**/*_spec.js'] },
core: { src: ["test/_spec.js","test/red/**/*_spec.js"]},
nodes: { src: ["test/nodes/**/*_spec.js"]}
},
webdriver: {
all: {
configFile: 'test/editor/wdio.conf.js'
}
},
mocha_istanbul: {
options: {
globals: ['expect'],
timeout: 3000,
ignoreLeaks: false,
ui: 'bdd',
reportFormats: ['lcov','html'],
print: 'both'
},
all: { src: ['test/**/*_spec.js'] },
core: { src: ["test/_spec.js","test/red/**/*_spec.js"]},
nodes: { src: ["test/nodes/**/*_spec.js"]}
},
jshint: {
options: {
jshintrc:true
// http://www.jshint.com/docs/options/
//"asi": true, // allow missing semicolons
//"curly": true, // require braces
//"eqnull": true, // ignore ==null
//"forin": true, // require property filtering in "for in" loops
//"immed": true, // require immediate functions to be wrapped in ( )
//"nonbsp": true, // warn on unexpected whitespace breaking chars
////"strict": true, // commented out for now as it causes 100s of warnings, but want to get there eventually
//"loopfunc": true, // allow functions to be defined in loops
//"sub": true // don't warn that foo['bar'] should be written as foo.bar
},
all: [
'Gruntfile.js',
'red.js',
'red/**/*.js',
'nodes/core/*/*.js',
'editor/js/**/*.js'
],
core: {
files: {
src: [
'Gruntfile.js',
'red.js',
'red/**/*.js'
]
}
},
nodes: {
files: {
src: [ 'nodes/core/*/*.js' ]
}
},
editor: {
files: {
src: [ 'editor/js/**/*.js' ]
}
},
tests: {
files: {
src: ['test/**/*.js']
},
options: {
"expr": true
}
}
},
concat: {
options: {
separator: ";",
},
build: {
src: [
// Ensure editor source files are concatenated in
// the right order
"editor/js/red.js",
"editor/js/events.js",
"editor/js/i18n.js",
"editor/js/settings.js",
"editor/js/user.js",
"editor/js/comms.js",
"editor/js/text/bidi.js",
"editor/js/text/format.js",
"editor/js/ui/state.js",
"editor/js/nodes.js",
"editor/js/history.js",
"editor/js/validators.js",
"editor/js/ui/utils.js",
"editor/js/ui/common/editableList.js",
"editor/js/ui/common/checkboxSet.js",
"editor/js/ui/common/menu.js",
"editor/js/ui/common/panels.js",
"editor/js/ui/common/popover.js",
"editor/js/ui/common/searchBox.js",
"editor/js/ui/common/tabs.js",
"editor/js/ui/common/stack.js",
"editor/js/ui/common/typedInput.js",
"editor/js/ui/actions.js",
"editor/js/ui/deploy.js",
"editor/js/ui/diff.js",
"editor/js/ui/keyboard.js",
"editor/js/ui/workspaces.js",
"editor/js/ui/view.js",
"editor/js/ui/sidebar.js",
"editor/js/ui/palette.js",
"editor/js/ui/tab-info.js",
"editor/js/ui/tab-config.js",
"editor/js/ui/palette-editor.js",
"editor/js/ui/editor.js",
"editor/js/ui/tray.js",
"editor/js/ui/clipboard.js",
"editor/js/ui/library.js",
"editor/js/ui/notifications.js",
"editor/js/ui/search.js",
"editor/js/ui/typeSearch.js",
"editor/js/ui/subflow.js",
"editor/js/ui/userSettings.js",
"editor/js/ui/projects/projects.js",
"editor/js/ui/projects/projectSettings.js",
"editor/js/ui/projects/projectUserSettings.js",
"editor/js/ui/projects/tab-versionControl.js",
"editor/js/ui/touch/radialMenu.js"
],
dest: "public/red/red.js"
},
vendor: {
files: {
"public/vendor/vendor.js": [
"editor/vendor/jquery/js/jquery-1.11.3.min.js",
"editor/vendor/bootstrap/js/bootstrap.min.js",
"editor/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js",
"editor/vendor/jquery/js/jquery.ui.touch-punch.min.js",
"editor/vendor/marked/marked.min.js",
"editor/vendor/d3/d3.v3.min.js",
"editor/vendor/i18next/i18next.min.js"
],
"public/vendor/vendor.css": [
// TODO: resolve relative resource paths in
// bootstrap/FA/jquery
],
"public/vendor/jsonata/jsonata.min.js": [
"node_modules/jsonata/jsonata-es5.min.js",
"editor/vendor/jsonata/formatter.js"
],
"public/vendor/ace/worker-jsonata.js": [
"node_modules/jsonata/jsonata-es5.min.js",
"editor/vendor/jsonata/worker-jsonata.js"
]
}
}
},
uglify: {
build: {
files: {
'public/red/red.min.js': 'public/red/red.js',
'public/red/main.min.js': 'public/red/main.js',
'public/vendor/ace/mode-jsonata.js': 'editor/vendor/jsonata/mode-jsonata.js',
'public/vendor/ace/snippets/jsonata.js': 'editor/vendor/jsonata/snippets-jsonata.js'
}
}
},
sass: {
build: {
options: {
outputStyle: 'compressed'
},
files: [{
dest: 'public/red/style.min.css',
src: 'editor/sass/style.scss'
},
{
dest: 'public/vendor/bootstrap/css/bootstrap.min.css',
src: 'editor/vendor/bootstrap/css/bootstrap.css'
}]
}
},
jsonlint: {
messages: {
src: [
'nodes/core/locales/en-US/messages.json',
'red/api/locales/en-US/editor.json',
'red/runtime/locales/en-US/runtime.json'
]
},
keymaps: {
src: [
'editor/js/keymap.json'
]
}
},
attachCopyright: {
js: {
src: [
'public/red/red.min.js',
'public/red/main.min.js'
]
},
css: {
src: [
'public/red/style.min.css'
]
}
},
clean: {
build: {
src: [
"public/red",
"public/index.html",
"public/favicon.ico",
"public/icons",
"public/vendor"
]
},
release: {
src: [
'<%= paths.dist %>'
]
}
},
watch: {
js: {
files: [
'editor/js/**/*.js'
],
tasks: ['copy:build','concat','uglify','attachCopyright:js']
},
sass: {
files: [
'editor/sass/**/*.scss'
],
tasks: ['sass','attachCopyright:css']
},
json: {
files: [
'nodes/core/locales/en-US/messages.json',
'red/api/locales/en-US/editor.json',
'red/runtime/locales/en-US/runtime.json'
],
tasks: ['jsonlint:messages']
},
keymaps: {
files: [
'editor/js/keymap.json'
],
tasks: ['jsonlint:keymaps','copy:build']
},
misc: {
files: [
'CHANGELOG.md'
],
tasks: ['copy:build']
}
},
nodemon: {
/* uses .nodemonignore */
dev: {
script: 'red.js',
options: {
args: nodemonArgs,
ext: 'js,html,json',
watch: [
'red','nodes'
]
}
}
},
concurrent: {
dev: {
tasks: ['nodemon', 'watch'],
options: {
logConcurrentOutput: true
}
}
},
copy: {
build: {
files:[
{
src: 'editor/js/main.js',
dest: 'public/red/main.js'
},
{
src: 'editor/js/keymap.json',
dest: 'public/red/keymap.json'
},
{
cwd: 'editor/images',
src: '**',
expand: true,
dest: 'public/red/images/'
},
{
cwd: 'editor/vendor',
src: [
'ace/**',
//'bootstrap/css/**',
'bootstrap/img/**',
'jquery/css/**',
'font-awesome/**'
],
expand: true,
dest: 'public/vendor/'
},
{
cwd: 'editor/icons',
src: '**',
expand: true,
dest: 'public/icons/'
},
{
expand: true,
src: ['editor/index.html','editor/favicon.ico'],
dest: 'public/',
flatten: true
},
{
src: 'CHANGELOG.md',
dest: 'public/red/about'
}
]
},
release: {
files: [{
mode: true,
expand: true,
src: [
'*.md',
'LICENSE',
'package.json',
'settings.js',
'red.js',
'lib/.gitignore',
'nodes/*.demo',
'nodes/core/**',
'red/**',
'public/**',
'editor/templates/**',
'bin/**'
],
dest: path.resolve('<%= paths.dist %>/node-red-<%= pkg.version %>')
}]
}
},
chmod: {
options: {
mode: '755'
},
release: {
// Target-specific file/dir lists and/or options go here.
src: [
path.resolve('<%= paths.dist %>/node-red-<%= pkg.version %>/nodes/core/hardware/nrgpio*')
]
}
},
compress: {
release: {
options: {
archive: '<%= paths.dist %>/node-red-<%= pkg.version %>.zip'
},
expand: true,
cwd: '<%= paths.dist %>/',
src: ['node-red-<%= pkg.version %>/**']
}
}
});
grunt.loadNpmTasks('grunt-simple-mocha');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.registerTask('default', ['jshint:tests','simplemocha']);
grunt.registerTask('all', ['jshint:all','default']);
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-nodemon');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-chmod');
grunt.loadNpmTasks('grunt-jsonlint');
grunt.loadNpmTasks('grunt-mocha-istanbul');
grunt.loadNpmTasks('grunt-webdriver');
grunt.registerMultiTask('attachCopyright', function() {
var files = this.data.src;
var copyright = "/**\n"+
" * Copyright JS Foundation and other contributors, http://js.foundation\n"+
" *\n"+
" * Licensed under the Apache License, Version 2.0 (the \"License\");\n"+
" * you may not use this file except in compliance with the License.\n"+
" * You may obtain a copy of the License at\n"+
" *\n"+
" * http://www.apache.org/licenses/LICENSE-2.0\n"+
" *\n"+
" * Unless required by applicable law or agreed to in writing, software\n"+
" * distributed under the License is distributed on an \"AS IS\" BASIS,\n"+
" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"+
" * See the License for the specific language governing permissions and\n"+
" * limitations under the License.\n"+
" **/\n";
if (files) {
for (var i=0; i<files.length; i++) {
var file = files[i];
if (!grunt.file.exists(file)) {
grunt.log.warn('File '+ file + ' not found');
return false;
} else {
var content = grunt.file.read(file);
if (content.indexOf(copyright) == -1) {
content = copyright+content;
if (!grunt.file.write(file, content)) {
return false;
}
grunt.log.writeln("Attached copyright to "+file);
} else {
grunt.log.writeln("Copyright already on "+file);
}
}
}
}
});
grunt.registerTask('setDevEnv',
'Sets NODE_ENV=development so non-minified assets are used',
function () {
process.env.NODE_ENV = 'development';
});
grunt.registerTask('default',
'Builds editor content then runs code style checks and unit tests on all components',
['build','test-core','test-editor','test-nodes']);
grunt.registerTask('test-core',
'Runs code style check and unit tests on core runtime code',
['build','mocha_istanbul:core']);
grunt.registerTask('test-editor',
'Runs code style check on editor code',
['jshint:editor']);
grunt.registerTask('test-ui',
'Builds editor content then runs unit tests on editor ui',
['build','jshint:editor','webdriver:all']);
grunt.registerTask('test-nodes',
'Runs unit tests on core nodes',
['build','mocha_istanbul:nodes']);
grunt.registerTask('build',
'Builds editor content',
['clean:build','jsonlint','concat:build','concat:vendor','copy:build','uglify:build','sass:build','attachCopyright']);
grunt.registerTask('dev',
'Developer mode: run node-red, watch for source changes and build/restart',
['build','setDevEnv','concurrent:dev']);
grunt.registerTask('release',
'Create distribution zip file',
['build','clean:release','copy:release','chmod:release','compress:release']);
grunt.registerTask('coverage',
'Run Istanbul code test coverage task',
['build','mocha_istanbul:all']);
};

View File

@@ -1,57 +0,0 @@
Node-RED Install
================
## Install node.js
You can get the latest version from <http://nodejs.org/download/>.
Or, you may want to use a version from your operating system's package manager:
<https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager>
## Get Node-RED
Clone the repository from GitHub:
$ git clone git@github.com:node-red/node-red.git
## Install the pre-requisite modules
From the top-level directory of Node-RED, run:
$ npm install
This will install the core pre-requisite modules.
## Run Node-RED
From the top-level directory, run:
$ node red.js
You can then access Node-RED at <http://localhost:1880>.
Online documentation is available at <http://nodered.org/docs>.
## Installing individual node dependencies
When Node-RED starts, it attempts to load the nodes from the `nodes/` directory.
Each will have its own set of dependencies that will need to be installed before
the node is available in the palette.
To help identify the dependencies, Node-RED logs any modules it fails to find
for a particular node. You don't have to install these unless you want or need
that node to appear.
Alternatively, a node's `.js` file can be examined to identify the modules it
explicitly requires. For example, the Twitter node is defined in
`nodes/social/27-twitter.js` and contains:
var RED = require("../../red/red");
var ntwitter = require('ntwitter');
var OAuth= require('oauth').OAuth;
Of these, `ntwitter` and `oauth` are neither built-in modules nor ones provided
by Node-RED itself. They can subsequently be installed by running:
$ npm install ntwitter oauth

View File

@@ -1,3 +1,4 @@
Copyright JS Foundation and other contributors, http://js.foundation
Apache License
Version 2.0, January 2004

View File

@@ -1,48 +1,74 @@
# Node-RED
http://nodered.org
http://nodered.org
[![Build Status](https://travis-ci.org/node-red/node-red.svg)](https://travis-ci.org/node-red/node-red)
[![Coverage Status](https://coveralls.io/repos/node-red/node-red/badge.svg?branch=master)](https://coveralls.io/r/node-red/node-red?branch=master)
A visual tool for wiring the Internet of Things.
![Screenshot](http://nodered.org/images/node-red-screenshot.png "Node-RED: A visual tool for wiring the Internet of Things")
![Node-RED: A visual tool for wiring the Internet of Things](http://nodered.org/images/node-red-screenshot.png)
## Quick Start
Check out [INSTALL](INSTALL.md) for full instructions on getting started.
Check out http://nodered.org/docs/getting-started/ for full instructions on getting
started.
1. download the zip and unzip, or git clone
2. cd node-red
3. npm install
4. node red.js
5. Open <http://localhost:1880>
1. `sudo npm install -g --unsafe-perm node-red`
2. `node-red`
3. Open <http://localhost:1880>
## Documentation
## Getting Help
More documentation can be found [here](http://nodered.org/docs).
For further help, or general discussion, there is also a [mailing list](https://groups.google.com/forum/#!forum/node-red).
For further help, or general discussion, please use the
[mailing list](https://groups.google.com/forum/#!forum/node-red).
## Browser Support
## Developers
The Node-RED editor runs in the browser. We routinely develop and test using
Chrome and Firefox. We have anecdotal evidence that it works in IE9.
If you want to run the latest code from git, here's how to get started:
We do not yet support mobile browsers, although that is high on our priority
list.
1. Clone the code:
git clone https://github.com/node-red/node-red.git
cd node-red
2. Install the node-red dependencies
npm install
3. Build the code
npm run build
4. Run
npm start
or
node red.js
## Contributing
Please see our [contributing guide](https://github.com/node-red/node-red/blob/master/CONTRIBUTING.md).
Before raising a pull-request, please read our
[contributing guide](https://github.com/node-red/node-red/blob/master/CONTRIBUTING.md).
This project adheres to the [Contributor Covenant 1.4](http://contributor-covenant.org/version/1/4/).
By participating, you are expected to uphold this code. Please report unacceptable
behavior to any of the project's core team at team@nodered.org.
## Authors
Node-RED is a creation of [IBM Emerging Technology](http://ibm.com/blogs/et).
Node-RED is a project of the [JS Foundation](http://js.foundation).
It was created by [IBM Emerging Technology](https://www.ibm.com/blogs/emerging-technology/).
* Nick O'Leary [@knolleary](http://twitter.com/knolleary)
* Dave Conway-Jones [@ceejay](http://twitter.com/ceejay)
For more open-source projects from IBM, head over [here](http://ibm.github.io).
## Copyright and license
Copyright 2013, 2014 IBM Corp. under [the Apache 2.0 license](LICENSE).
Copyright JS Foundation and other contributors, http://js.foundation under [the Apache 2.0 license](LICENSE).

43
bin/node-red-pi Executable file
View File

@@ -0,0 +1,43 @@
#!/bin/bash
#
# Copyright JS Foundation and other contributors, http://js.foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Separate out node/v8 options from node-red ones
OPTIONS=""
ARGS=""
for arg in "$@"
do
case $arg in
--userDir|--settings|--help) ARGS="$ARGS $arg";;
--*) OPTIONS="$OPTIONS $arg";;
*) ARGS="$ARGS $arg";;
esac
done
# Find the real location of this script
CURRENT_PATH=`pwd`
SCRIPT_PATH="${BASH_SOURCE[0]}";
while([ -h "${SCRIPT_PATH}" ]); do
cd "`dirname "${SCRIPT_PATH}"`"
SCRIPT_PATH="$(readlink "`basename "${SCRIPT_PATH}"`")";
done
cd "`dirname "${SCRIPT_PATH}"`" > /dev/null
SCRIPT_PATH="`pwd`";
cd $CURRENT_PATH
# Run Node-RED
exec /usr/bin/env node $OPTIONS $SCRIPT_PATH/../red.js $ARGS

BIN
editor/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 308 B

View File

Before

Width:  |  Height:  |  Size: 603 B

After

Width:  |  Height:  |  Size: 603 B

View File

Before

Width:  |  Height:  |  Size: 393 B

After

Width:  |  Height:  |  Size: 393 B

BIN
editor/icons/batch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

View File

Before

Width:  |  Height:  |  Size: 575 B

After

Width:  |  Height:  |  Size: 575 B

BIN
editor/icons/cog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

View File

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 601 B

View File

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 459 B

View File

Before

Width:  |  Height:  |  Size: 218 B

After

Width:  |  Height:  |  Size: 218 B

View File

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 324 B

View File

Before

Width:  |  Height:  |  Size: 378 B

After

Width:  |  Height:  |  Size: 378 B

View File

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 255 B

View File

Before

Width:  |  Height:  |  Size: 457 B

After

Width:  |  Height:  |  Size: 457 B

View File

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 502 B

View File

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 449 B

BIN
editor/icons/join.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 639 B

After

Width:  |  Height:  |  Size: 639 B

BIN
editor/icons/link-out.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

View File

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 414 B

BIN
editor/icons/mouse.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 B

View File

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 386 B

View File

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 386 B

BIN
editor/icons/parser-csv.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 B

BIN
editor/icons/parser-xml.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

View File

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 360 B

View File

Before

Width:  |  Height:  |  Size: 736 B

After

Width:  |  Height:  |  Size: 736 B

View File

Before

Width:  |  Height:  |  Size: 482 B

After

Width:  |  Height:  |  Size: 482 B

View File

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 273 B

BIN
editor/icons/sort.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

BIN
editor/icons/split.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

BIN
editor/icons/subflow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

View File

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 592 B

View File

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 509 B

View File

Before

Width:  |  Height:  |  Size: 488 B

After

Width:  |  Height:  |  Size: 488 B

View File

Before

Width:  |  Height:  |  Size: 628 B

After

Width:  |  Height:  |  Size: 628 B

View File

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

View File

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 404 B

View File

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 591 B

View File

Before

Width:  |  Height:  |  Size: 707 B

After

Width:  |  Height:  |  Size: 707 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

BIN
editor/images/grip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="480" height="480" viewBox="0, 0, 480, 480">
<g id="Calque_1">
<path d="M408,16 C438.928,16 464,41.072 464,72 L464,408 C464,438.928 438.928,464 408,464 L72,464 C41.072,464 16,438.928 16,408 L16,296.002 L69.339,296.002 C89.715,296.002 105.993,279.497 105.993,259.12 L105.992,242.19 C190.296,243.397 214.83,265.317 241.661,288.777 C267.502,311.375 296.48,335.662 371.989,336.261 L371.993,344.57 C372.002,364.947 388.693,382 409.069,382 L463.991,382 L463.991,356 L409.069,356 C402.189,356 396.991,351.449 396.991,344.569 L396.991,308.32 C396.991,301.44 402.189,296 409.069,296 L463.991,296 L463.991,272 L409.069,272 C388.693,272 372.002,287.943 371.993,308.32 L371.99,316.908 C300.63,316.672 280.362,296.883 254.41,274.189 C232.267,254.825 206.244,233.534 148.914,225.789 C149.412,225.361 149.872,224.945 150.353,224.505 C161.391,214.382 167.343,202.153 173.167,191.593 C178.99,181.034 184.469,172.221 193.444,166.061 C200.725,161.064 211.08,157.338 226.992,156.647 L226.993,165.123 C226.997,185.5 243.431,202.999 263.808,202.999 L411.141,202.999 C431.517,202.999 447.993,185.5 447.993,165.123 L447.993,128.874 C447.993,108.497 431.517,91.999 411.141,91.999 L263.808,91.999 C243.431,91.999 226.983,108.496 226.993,128.874 L226.998,137.281 C207.794,138.053 193.238,142.713 182.496,150.086 C169.469,159.028 162.277,171.247 156.21,182.247 C150.144,193.247 145.009,203.104 137.25,210.218 C130.497,216.411 121.157,221.193 105.993,222.976 L105.993,222.579 C106.111,202.203 89.715,186.002 69.339,186.002 L16,186.002 L16,72 C16,41.072 41.072,16 72,16 L408,16 z" fill="#000000"/>
<path d="M16,211.002 L69.339,211.002 C76.219,211.002 81.992,215.991 81.992,222.871 L81.992,259.12 C81.992,266 76.219,272.002 69.339,272.002 L16,272.002 L16,211.002 z" fill="#000000"/>
<path d="M411.135,116.997 C418.015,116.997 422.987,121.992 422.987,128.872 L422.987,165.122 C422.987,172.002 418.015,176.998 411.135,176.998 L263.802,176.998 C256.923,176.998 250.99,172.002 250.99,165.122 L250.99,128.872 C250.99,121.993 256.923,116.997 263.802,116.997 L411.135,116.997 z" fill="#000000"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="480" width="480" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 480.00002 479.99999">
<title>Node-RED Icon</title>
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title>Node-RED Icon</dc:title>
<cc:license rdf:resource="http://creativecommons.org/licenses/by/3.0/"/>
<dc:creator>
<cc:Agent>
<dc:title>Nick O&apos;Leary</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
<cc:License rdf:about="http://creativecommons.org/licenses/by/3.0/">
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
</cc:License>
</rdf:RDF>
</metadata>
<g transform="translate(0 -572.36)">
<rect style="color-rendering:auto;color:#000000;isolation:auto;mix-blend-mode:normal;shape-rendering:auto;solid-color:#000000;image-rendering:auto" ry="56" height="448" width="448" y="588.36" x="16" fill="#8f0000"/>
<g transform="matrix(8.545 0 0 8.545 -786.19 -1949.8)">
<path style="color-rendering:auto;text-decoration-color:#000000;color:#000000;isolation:auto;mix-blend-mode:normal;shape-rendering:auto;solid-color:#000000;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;image-rendering:auto;white-space:normal;text-indent:0;text-transform:none" d="m104.41 321.21c0.0138-2.3846-1.905-4.2806-4.2896-4.2806h-6.243v2.9257h6.243c0.80513 0 1.4808 0.58383 1.4808 1.389v4.2422c0 0.80513-0.67566 1.5075-1.4808 1.5075h-6.243v2.8086h6.243c2.3846 0 4.2895-1.9315 4.2895-4.3162l-0.00005-1.9812c9.8659 0.14125 12.737 2.7065 15.877 5.4519 3.0241 2.6446 6.4153 5.4869 15.252 5.557l0.00046 0.97238c0.001 2.3846 1.9543 4.3803 4.3389 4.3803h6.4273v-3.0427h-6.4273c-0.80514 0-1.4135-0.53255-1.4135-1.3377v-4.2422c0-0.80513 0.60835-1.4418 1.4135-1.4418h6.4273v-2.8086h-6.4273c-2.3846 0-4.3379 1.8658-4.3389 4.2504l-0.00045 1.005c-8.351-0.0276-10.723-2.3434-13.76-4.9992-2.5914-2.2662-5.6368-4.7578-12.346-5.6642 0.0583-0.0501 0.11211-0.0987 0.16838-0.15027 1.2918-1.1846 1.9884-2.6158 2.6699-3.8516 0.68148-1.2357 1.3227-2.267 2.373-2.9879 0.85207-0.58483 2.0639-1.0208 3.926-1.1017l0.00018 0.99192c0.00043 2.3846 1.9236 4.4325 4.3083 4.4325h17.242c2.3846 0 4.3127-2.0479 4.3127-4.4325v-4.2422c0-2.3846-1.9281-4.3153-4.3127-4.3153h-17.242c-2.3846 0-4.3095 1.9306-4.3083 4.3153l0.00051 0.98395c-2.2474 0.0903-3.9508 0.6357-5.2079 1.4985-1.5245 1.0464-2.3662 2.4764-3.0762 3.7637-0.70992 1.2873-1.3108 2.4408-2.2188 3.2734-0.79034 0.72475-1.8834 1.2844-3.658 1.493zm18.468-12.356h17.242c0.80514 0 1.387 0.58455 1.387 1.3897v4.2422c0 0.80514-0.5819 1.3898-1.387 1.3898h-17.242c-0.80514 0-1.4994-0.58462-1.4994-1.3898v-4.2422c0-0.80513 0.69431-1.3897 1.4994-1.3897z" fill="#fff"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
editor/images/node-red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 B

View File

Before

Width:  |  Height:  |  Size: 600 B

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

168
editor/js/comms.js Normal file
View File

@@ -0,0 +1,168 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.comms = (function() {
var errornotification = null;
var clearErrorTimer = null;
var connectCountdownTimer = null;
var connectCountdown = 10;
var subscriptions = {};
var ws;
var pendingAuth = false;
var reconnectAttempts = 0;
var active = false;
function connectWS() {
active = true;
var path = location.hostname;
var port = location.port;
if (port.length !== 0) {
path = path+":"+port;
}
path = path+document.location.pathname;
path = path+(path.slice(-1) == "/"?"":"/")+"comms";
path = "ws"+(document.location.protocol=="https:"?"s":"")+"://"+path;
var auth_tokens = RED.settings.get("auth-tokens");
pendingAuth = (auth_tokens!=null);
function completeConnection() {
for (var t in subscriptions) {
if (subscriptions.hasOwnProperty(t)) {
ws.send(JSON.stringify({subscribe:t}));
}
}
}
ws = new WebSocket(path);
ws.onopen = function() {
reconnectAttempts = 0;
if (errornotification) {
clearErrorTimer = setTimeout(function() {
errornotification.close();
errornotification = null;
},1000);
}
if (pendingAuth) {
ws.send(JSON.stringify({auth:auth_tokens.access_token}));
} else {
completeConnection();
}
}
ws.onmessage = function(event) {
var message = JSON.parse(event.data);
for (var m = 0; m < message.length; m++) {
var msg = message[m];
if (pendingAuth && msg.auth) {
if (msg.auth === "ok") {
pendingAuth = false;
completeConnection();
} else if (msg.auth === "fail") {
// anything else is an error...
active = false;
RED.user.login({updateMenu:true},function() {
connectWS();
})
}
}
else if (msg.topic) {
for (var t in subscriptions) {
if (subscriptions.hasOwnProperty(t)) {
var re = new RegExp("^"+t.replace(/([\[\]\?\(\)\\\\$\^\*\.|])/g,"\\$1").replace(/\+/g,"[^/]+").replace(/\/#$/,"(\/.*)?")+"$");
if (re.test(msg.topic)) {
var subscribers = subscriptions[t];
if (subscribers) {
for (var i=0;i<subscribers.length;i++) {
subscribers[i](msg.topic,msg.data);
}
}
}
}
}
}
}
};
ws.onclose = function() {
if (!active) {
return;
}
if (clearErrorTimer) {
clearTimeout(clearErrorTimer);
clearErrorTimer = null;
}
reconnectAttempts++;
if (reconnectAttempts < 10) {
setTimeout(connectWS,1000);
if (reconnectAttempts > 5 && errornotification == null) {
errornotification = RED.notify(RED._("notification.errors.lostConnection"),"error",true);
}
} else if (reconnectAttempts < 20) {
setTimeout(connectWS,2000);
} else {
connectCountdown = 60;
connectCountdownTimer = setInterval(function() {
connectCountdown--;
if (connectCountdown === 0) {
errornotification.update(RED._("notification.errors.lostConnection"));
clearInterval(connectCountdownTimer);
connectWS();
} else {
var msg = RED._("notification.errors.lostConnectionReconnect",{time: connectCountdown})+' <a href="#">'+ RED._("notification.errors.lostConnectionTry")+'</a>';
errornotification.update(msg);
$(errornotification).find("a").click(function(e) {
e.preventDefault();
errornotification.update(RED._("notification.errors.lostConnection"));
clearInterval(connectCountdownTimer);
connectWS();
})
}
},1000);
}
}
}
function subscribe(topic,callback) {
if (subscriptions[topic] == null) {
subscriptions[topic] = [];
}
subscriptions[topic].push(callback);
if (ws && ws.readyState == 1) {
ws.send(JSON.stringify({subscribe:topic}));
}
}
function unsubscribe(topic,callback) {
if (subscriptions[topic]) {
for (var i=0;i<subscriptions[topic].length;i++) {
if (subscriptions[topic][i] === callback) {
subscriptions[topic].splice(i,1);
break;
}
}
if (subscriptions[topic].length === 0) {
delete subscriptions[topic];
}
}
}
return {
connect: connectWS,
subscribe: subscribe,
unsubscribe:unsubscribe
}
})();

53
editor/js/events.js Normal file
View File

@@ -0,0 +1,53 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.events = (function() {
var handlers = {};
function on(evt,func) {
handlers[evt] = handlers[evt]||[];
handlers[evt].push(func);
}
function off(evt,func) {
var handler = handlers[evt];
if (handler) {
for (var i=0;i<handler.length;i++) {
if (handler[i] === func) {
handler.splice(i,1);
return;
}
}
}
}
function emit(evt,arg) {
if (handlers[evt]) {
for (var i=0;i<handlers[evt].length;i++) {
try {
handlers[evt][i](arg);
} catch(err) {
console.log("RED.events.emit error: ["+evt+"] "+(err.toString()));
console.log(err);
}
}
}
}
return {
on: on,
off: off,
emit: emit
}
})();

330
editor/js/history.js Normal file
View File

@@ -0,0 +1,330 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.history = (function() {
var undo_history = [];
function undoEvent(ev) {
var i;
var len;
var node;
var subflow;
var modifiedTabs = {};
if (ev) {
if (ev.t == 'multi') {
len = ev.events.length;
for (i=len-1;i>=0;i--) {
undoEvent(ev.events[i]);
}
} else if (ev.t == 'replace') {
RED.nodes.clear();
var imported = RED.nodes.import(ev.config);
imported[0].forEach(function(n) {
if (ev.changed[n.id]) {
n.changed = true;
}
})
RED.nodes.version(ev.rev);
} else if (ev.t == 'add') {
if (ev.nodes) {
for (i=0;i<ev.nodes.length;i++) {
node = RED.nodes.node(ev.nodes[i]);
if (node.z) {
modifiedTabs[node.z] = true;
}
RED.nodes.remove(ev.nodes[i]);
}
}
if (ev.links) {
for (i=0;i<ev.links.length;i++) {
RED.nodes.removeLink(ev.links[i]);
}
}
if (ev.workspaces) {
for (i=0;i<ev.workspaces.length;i++) {
RED.nodes.removeWorkspace(ev.workspaces[i].id);
RED.workspaces.remove(ev.workspaces[i]);
}
}
if (ev.subflows) {
for (i=0;i<ev.subflows.length;i++) {
RED.nodes.removeSubflow(ev.subflows[i]);
RED.workspaces.remove(ev.subflows[i]);
}
}
if (ev.subflow) {
if (ev.subflow.instances) {
ev.subflow.instances.forEach(function(n) {
var node = RED.nodes.node(n.id);
if (node) {
node.changed = n.changed;
node.dirty = true;
}
});
}
if (ev.subflow.hasOwnProperty('changed')) {
subflow = RED.nodes.subflow(ev.subflow.id);
if (subflow) {
subflow.changed = ev.subflow.changed;
}
}
}
if (ev.removedLinks) {
for (i=0;i<ev.removedLinks.length;i++) {
RED.nodes.addLink(ev.removedLinks[i]);
}
}
} else if (ev.t == "delete") {
if (ev.workspaces) {
for (i=0;i<ev.workspaces.length;i++) {
RED.nodes.addWorkspace(ev.workspaces[i]);
RED.workspaces.add(ev.workspaces[i]);
}
}
if (ev.subflow && ev.subflow.subflow) {
RED.nodes.addSubflow(ev.subflow.subflow);
}
if (ev.subflowInputs && ev.subflowInputs.length > 0) {
subflow = RED.nodes.subflow(ev.subflowInputs[0].z);
subflow.in.push(ev.subflowInputs[0]);
subflow.in[0].dirty = true;
}
if (ev.subflowOutputs && ev.subflowOutputs.length > 0) {
subflow = RED.nodes.subflow(ev.subflowOutputs[0].z);
ev.subflowOutputs.sort(function(a,b) { return a.i-b.i});
for (i=0;i<ev.subflowOutputs.length;i++) {
var output = ev.subflowOutputs[i];
subflow.out.splice(output.i,0,output);
for (var j=output.i+1;j<subflow.out.length;j++) {
subflow.out[j].i++;
subflow.out[j].dirty = true;
}
RED.nodes.eachLink(function(l) {
if (l.source.type == "subflow:"+subflow.id) {
if (l.sourcePort >= output.i) {
l.sourcePort++;
}
}
});
}
}
if (ev.subflow && ev.subflow.hasOwnProperty('instances')) {
ev.subflow.instances.forEach(function(n) {
var node = RED.nodes.node(n.id);
if (node) {
node.changed = n.changed;
node.dirty = true;
}
});
}
if (subflow) {
RED.nodes.filterNodes({type:"subflow:"+subflow.id}).forEach(function(n) {
n.inputs = subflow.in.length;
n.outputs = subflow.out.length;
while (n.outputs > n.ports.length) {
n.ports.push(n.ports.length);
}
n.resize = true;
n.dirty = true;
});
}
if (ev.nodes) {
for (i=0;i<ev.nodes.length;i++) {
RED.nodes.add(ev.nodes[i]);
modifiedTabs[ev.nodes[i].z] = true;
}
}
if (ev.links) {
for (i=0;i<ev.links.length;i++) {
RED.nodes.addLink(ev.links[i]);
}
}
if (ev.changes) {
for (i in ev.changes) {
if (ev.changes.hasOwnProperty(i)) {
node = RED.nodes.node(i);
if (node) {
for (var d in ev.changes[i]) {
if (ev.changes[i].hasOwnProperty(d)) {
node[d] = ev.changes[i][d];
}
}
node.dirty = true;
}
}
}
}
} else if (ev.t == "move") {
for (i=0;i<ev.nodes.length;i++) {
var n = ev.nodes[i];
n.n.x = n.ox;
n.n.y = n.oy;
n.n.dirty = true;
n.n.moved = n.moved;
}
// A move could have caused a link splice
if (ev.links) {
for (i=0;i<ev.links.length;i++) {
RED.nodes.removeLink(ev.links[i]);
}
}
if (ev.removedLinks) {
for (i=0;i<ev.removedLinks.length;i++) {
RED.nodes.addLink(ev.removedLinks[i]);
}
}
} else if (ev.t == "edit") {
for (i in ev.changes) {
if (ev.changes.hasOwnProperty(i)) {
if (ev.node._def.defaults[i] && ev.node._def.defaults[i].type) {
// This is a config node property
var currentConfigNode = RED.nodes.node(ev.node[i]);
if (currentConfigNode) {
currentConfigNode.users.splice(currentConfigNode.users.indexOf(ev.node),1);
}
var newConfigNode = RED.nodes.node(ev.changes[i]);
if (newConfigNode) {
newConfigNode.users.push(ev.node);
}
}
ev.node[i] = ev.changes[i];
}
}
if (ev.subflow) {
if (ev.subflow.hasOwnProperty('inputCount')) {
if (ev.node.in.length > ev.subflow.inputCount) {
ev.node.in.splice(ev.subflow.inputCount);
} else if (ev.subflow.inputs.length > 0) {
ev.node.in = ev.node.in.concat(ev.subflow.inputs);
}
}
if (ev.subflow.hasOwnProperty('outputCount')) {
if (ev.node.out.length > ev.subflow.outputCount) {
ev.node.out.splice(ev.subflow.outputCount);
} else if (ev.subflow.outputs.length > 0) {
ev.node.out = ev.node.out.concat(ev.subflow.outputs);
}
}
if (ev.subflow.hasOwnProperty('instances')) {
ev.subflow.instances.forEach(function(n) {
var node = RED.nodes.node(n.id);
if (node) {
node.changed = n.changed;
node.dirty = true;
}
});
}
RED.nodes.filterNodes({type:"subflow:"+ev.node.id}).forEach(function(n) {
n.inputs = ev.node.in.length;
n.outputs = ev.node.out.length;
RED.editor.updateNodeProperties(n);
});
} else {
var outputMap;
if (ev.outputMap) {
outputMap = {};
for (var port in ev.outputMap) {
if (ev.outputMap.hasOwnProperty(port) && ev.outputMap[port] !== "-1") {
outputMap[ev.outputMap[port]] = port;
}
}
}
RED.editor.updateNodeProperties(ev.node,outputMap);
RED.editor.validateNode(ev.node);
}
if (ev.links) {
for (i=0;i<ev.links.length;i++) {
RED.nodes.addLink(ev.links[i]);
}
}
ev.node.dirty = true;
ev.node.changed = ev.changed;
} else if (ev.t == "createSubflow") {
if (ev.nodes) {
RED.nodes.filterNodes({z:ev.subflow.subflow.id}).forEach(function(n) {
n.z = ev.activeWorkspace;
n.dirty = true;
});
for (i=0;i<ev.nodes.length;i++) {
RED.nodes.remove(ev.nodes[i]);
}
}
if (ev.links) {
for (i=0;i<ev.links.length;i++) {
RED.nodes.removeLink(ev.links[i]);
}
}
RED.nodes.removeSubflow(ev.subflow.subflow);
RED.workspaces.remove(ev.subflow.subflow);
if (ev.removedLinks) {
for (i=0;i<ev.removedLinks.length;i++) {
RED.nodes.addLink(ev.removedLinks[i]);
}
}
} else if (ev.t == "reorder") {
if (ev.order) {
RED.workspaces.order(ev.order);
}
}
Object.keys(modifiedTabs).forEach(function(id) {
var subflow = RED.nodes.subflow(id);
if (subflow) {
RED.editor.validateNode(subflow);
}
});
RED.nodes.dirty(ev.dirty);
RED.view.redraw(true);
RED.palette.refresh();
RED.workspaces.refresh();
RED.sidebar.config.refresh();
}
}
return {
//TODO: this function is a placeholder until there is a 'save' event that can be listened to
markAllDirty: function() {
for (var i=0;i<undo_history.length;i++) {
undo_history[i].dirty = true;
}
},
list: function() {
return undo_history
},
depth: function() {
return undo_history.length;
},
push: function(ev) {
undo_history.push(ev);
},
pop: function() {
var ev = undo_history.pop();
undoEvent(ev);
},
peek: function() {
return undo_history[undo_history.length-1];
},
clear: function() {
undo_history = [];
}
}
})();

86
editor/js/i18n.js Normal file
View File

@@ -0,0 +1,86 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.i18n = (function() {
return {
init: function(done) {
i18n.init({
resGetPath: 'locales/__ns__?lng=__lng__',
dynamicLoad: false,
load:'current',
ns: {
namespaces: ["editor","node-red","jsonata","infotips"],
defaultNs: "editor"
},
fallbackLng: ['en-US'],
useCookie: false
},function() {
done();
});
RED["_"] = function() {
return i18n.t.apply(null,arguments);
}
},
loadCatalog: function(namespace,done) {
var languageList = i18n.functions.toLanguages(i18n.detectLanguage());
var toLoad = languageList.length;
languageList.forEach(function(lang) {
$.ajax({
headers: {
"Accept":"application/json"
},
cache: false,
url: 'locales/'+namespace+'?lng='+lang,
success: function(data) {
i18n.addResourceBundle(lang,namespace,data);
toLoad--;
if (toLoad === 0) {
done();
}
}
});
})
},
loadNodeCatalogs: function(done) {
var languageList = i18n.functions.toLanguages(i18n.detectLanguage());
var toLoad = languageList.length;
languageList.forEach(function(lang) {
$.ajax({
headers: {
"Accept":"application/json"
},
cache: false,
url: 'locales/nodes?lng='+lang,
success: function(data) {
var namespaces = Object.keys(data);
namespaces.forEach(function(ns) {
i18n.addResourceBundle(lang,ns,data[ns]);
});
toLoad--;
if (toLoad === 0) {
done();
}
}
});
})
}
}
})();

43
editor/js/keymap.json Normal file
View File

@@ -0,0 +1,43 @@
{
"*": {
"ctrl-shift-p":"core:manage-palette",
"ctrl-f": "core:search",
"ctrl-=": "core:zoom-in",
"ctrl--": "core:zoom-out",
"ctrl-0": "core:zoom-reset",
"ctrl-enter": "core:confirm-edit-tray",
"ctrl-escape": "core:cancel-edit-tray",
"ctrl-g i": "core:show-info-tab",
"ctrl-g d": "core:show-debug-tab",
"ctrl-g c": "core:show-config-tab",
"ctrl-e": "core:show-export-dialog",
"ctrl-i": "core:show-import-dialog",
"ctrl-space": "core:toggle-sidebar",
"ctrl-,": "core:show-user-settings",
"ctrl-alt-n": "core:new-project",
"ctrl-alt-o": "core:open-project",
"ctrl-g v": "core:show-version-control-tab"
},
"workspace": {
"backspace": "core:delete-selection",
"delete": "core:delete-selection",
"enter": "core:edit-selected-node",
"ctrl-c": "core:copy-selection-to-internal-clipboard",
"ctrl-x": "core:cut-selection-to-internal-clipboard",
"ctrl-v": "core:paste-from-internal-clipboard",
"ctrl-z": "core:undo",
"ctrl-a": "core:select-all-nodes",
"shift-?": "core:show-help",
"up": "core:move-selection-up",
"right": "core:move-selection-right",
"down": "core:move-selection-down",
"left": "core:move-selection-left",
"shift-up": "core:step-selection-up",
"shift-right": "core:step-selection-right",
"shift-down": "core:step-selection-down",
"shift-left": "core:step-selection-left",
"ctrl-shift-j": "core:show-previous-tab",
"ctrl-shift-k": "core:show-next-tab"
}
}

439
editor/js/main.js Normal file
View File

@@ -0,0 +1,439 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
(function() {
function loadNodeList() {
$.ajax({
headers: {
"Accept":"application/json"
},
cache: false,
url: 'nodes',
success: function(data) {
RED.nodes.setNodeList(data);
RED.i18n.loadNodeCatalogs(function() {
loadIconList(loadNodes);
});
}
});
}
function loadIconList(done) {
$.ajax({
headers: {
"Accept":"application/json"
},
cache: false,
url: 'icons',
success: function(data) {
RED.nodes.setIconSets(data);
if (done) {
done();
}
}
});
}
function loadNodes() {
$.ajax({
headers: {
"Accept":"text/html"
},
cache: false,
url: 'nodes',
success: function(data) {
$("body").append(data);
$("body").i18n();
$("#palette > .palette-spinner").hide();
$(".palette-scroll").removeClass("hide");
$("#palette-search").removeClass("hide");
loadFlows(function() {
if (RED.settings.theme("projects.enabled",false)) {
RED.projects.refresh(function(activeProject) {
RED.sidebar.info.refresh()
if (!activeProject) {
// Projects enabled but no active project
RED.menu.setDisabled('menu-item-projects-open',true);
RED.menu.setDisabled('menu-item-projects-settings',true);
if (activeProject === false) {
// User previously decline the migration to projects.
} else { // null/undefined
RED.projects.showStartup();
}
}
completeLoad();
});
} else {
// Projects disabled by the user
RED.sidebar.info.refresh()
completeLoad();
}
});
}
});
}
function loadFlows(done) {
$.ajax({
headers: {
"Accept":"application/json",
},
cache: false,
url: 'flows',
success: function(nodes) {
if (nodes) {
var currentHash = window.location.hash;
RED.nodes.version(nodes.rev);
RED.nodes.import(nodes.flows);
RED.nodes.dirty(false);
RED.view.redraw(true);
if (/^#flow\/.+$/.test(currentHash)) {
RED.workspaces.show(currentHash.substring(6));
}
}
done();
}
});
}
function completeLoad() {
var persistentNotifications = {};
RED.comms.subscribe("notification/#",function(topic,msg) {
var parts = topic.split("/");
var notificationId = parts[1];
if (notificationId === "runtime-deploy") {
// handled in ui/deploy.js
return;
}
if (notificationId === "node") {
// handled below
return;
}
if (notificationId === "project-update") {
RED.nodes.clear();
RED.history.clear();
RED.view.redraw(true);
RED.projects.refresh(function() {
loadFlows(function() {
var project = RED.projects.getActiveProject();
var message = {
"change-branch":"Change to local branch '"+project.git.branches.local+"'",
"abort-merge":"Git merge aborted",
"loaded":"Project '"+msg.project+"' loaded",
"updated":"Project '"+msg.project+"' updated",
"pull":"Project '"+msg.project+"' reloaded",
"revert": "Project '"+msg.project+"' reloaded"
}[msg.action];
RED.notify("<p>"+message+"</p>");
RED.sidebar.info.refresh()
});
});
return;
}
if (msg.text) {
msg.default = msg.text;
var text = RED._(msg.text,msg);
var options = {
type: msg.type,
fixed: msg.timeout === undefined,
timeout: msg.timeout,
id: notificationId
}
if (notificationId === "runtime-state") {
if (msg.error === "missing-types") {
text+="<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
if (!!RED.projects.getActiveProject()) {
options.buttons = [
{
text: "Manage project dependencies",
click: function() {
persistentNotifications[notificationId].hideNotification();
RED.projects.settings.show('deps');
}
}
]
// } else if (RED.settings.theme('palette.editable') !== false) {
} else {
options.buttons = [
{
text: "Close",
click: function() {
persistentNotifications[notificationId].hideNotification();
}
}
]
}
} else if (msg.error === "credentials_load_failed") {
if (RED.user.hasPermission("projects.write")) {
options.buttons = [
{
text: "Setup credentials",
click: function() {
persistentNotifications[notificationId].hideNotification();
RED.projects.showCredentialsPrompt();
}
}
]
}
} else if (msg.error === "missing_flow_file") {
if (RED.user.hasPermission("projects.write")) {
options.buttons = [
{
text: "Setup project files",
click: function() {
persistentNotifications[notificationId].hideNotification();
RED.projects.showFilesPrompt();
}
}
]
}
} else if (msg.error === "project_empty") {
if (RED.user.hasPermission("projects.write")) {
options.buttons = [
{
text: "No thanks",
click: function() {
persistentNotifications[notificationId].hideNotification();
}
},
{
text: "Create default project files",
click: function() {
persistentNotifications[notificationId].hideNotification();
RED.projects.createDefaultFileSet();
}
}
]
}
}
}
if (!persistentNotifications.hasOwnProperty(notificationId)) {
persistentNotifications[notificationId] = RED.notify(text,options);
} else {
persistentNotifications[notificationId].update(text,options);
}
} else if (persistentNotifications.hasOwnProperty(notificationId)) {
persistentNotifications[notificationId].close();
delete persistentNotifications[notificationId];
}
});
RED.comms.subscribe("status/#",function(topic,msg) {
var parts = topic.split("/");
var node = RED.nodes.node(parts[1]);
if (node) {
if (msg.hasOwnProperty("text")) {
if (msg.text[0] !== ".") {
msg.text = node._(msg.text.toString(),{defaultValue:msg.text.toString()});
}
}
node.status = msg;
node.dirty = true;
RED.view.redraw();
}
});
RED.comms.subscribe("notification/node/#",function(topic,msg) {
var i,m;
var typeList;
var info;
if (topic == "notification/node/added") {
var addedTypes = [];
msg.forEach(function(m) {
var id = m.id;
RED.nodes.addNodeSet(m);
addedTypes = addedTypes.concat(m.types);
RED.i18n.loadCatalog(id, function() {
$.get('nodes/'+id, function(data) {
$("body").append(data);
});
});
});
if (addedTypes.length) {
typeList = "<ul><li>"+addedTypes.join("</li><li>")+"</li></ul>";
RED.notify(RED._("palette.event.nodeAdded", {count:addedTypes.length})+typeList,"success");
}
loadIconList();
} else if (topic == "notification/node/removed") {
for (i=0;i<msg.length;i++) {
m = msg[i];
info = RED.nodes.removeNodeSet(m.id);
if (info.added) {
typeList = "<ul><li>"+m.types.join("</li><li>")+"</li></ul>";
RED.notify(RED._("palette.event.nodeRemoved", {count:m.types.length})+typeList,"success");
}
}
loadIconList();
} else if (topic == "notification/node/enabled") {
if (msg.types) {
info = RED.nodes.getNodeSet(msg.id);
if (info.added) {
RED.nodes.enableNodeSet(msg.id);
typeList = "<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
RED.notify(RED._("palette.event.nodeEnabled", {count:msg.types.length})+typeList,"success");
} else {
$.get('nodes/'+msg.id, function(data) {
$("body").append(data);
typeList = "<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
RED.notify(RED._("palette.event.nodeAdded", {count:msg.types.length})+typeList,"success");
});
}
}
} else if (topic == "notification/node/disabled") {
if (msg.types) {
RED.nodes.disableNodeSet(msg.id);
typeList = "<ul><li>"+msg.types.join("</li><li>")+"</li></ul>";
RED.notify(RED._("palette.event.nodeDisabled", {count:msg.types.length})+typeList,"success");
}
} else if (topic == "node/upgraded") {
RED.notify(RED._("palette.event.nodeUpgraded", {module:msg.module,version:msg.version}),"success");
RED.nodes.registry.setModulePendingUpdated(msg.module,msg.version);
}
// Refresh flow library to ensure any examples are updated
RED.library.loadFlowLibrary();
});
}
function showAbout() {
$.get('red/about', function(data) {
var aboutHeader = '<div style="text-align:center;">'+
'<img width="50px" src="red/images/node-red-icon.svg" />'+
'</div>';
RED.sidebar.info.set(aboutHeader+marked(data));
RED.sidebar.info.show();
});
}
function loadEditor() {
var menuOptions = [];
if (RED.settings.theme("projects.enabled",false)) {
menuOptions.push({id:"menu-item-projects-menu",label:"Projects",options:[
{id:"menu-item-projects-new",label:"New",disabled:false,onselect:"core:new-project"},
{id:"menu-item-projects-open",label:"Open",disabled:false,onselect:"core:open-project"},
{id:"menu-item-projects-settings",label:"Project Settings",disabled:false,onselect:"core:show-project-settings"}
]});
}
menuOptions.push({id:"menu-item-view-menu",label:RED._("menu.label.view.view"),options:[
// {id:"menu-item-view-show-grid",setting:"view-show-grid",label:RED._("menu.label.view.showGrid"),toggle:true,onselect:"core:toggle-show-grid"},
// {id:"menu-item-view-snap-grid",setting:"view-snap-grid",label:RED._("menu.label.view.snapGrid"),toggle:true,onselect:"core:toggle-snap-grid"},
// {id:"menu-item-status",setting:"node-show-status",label:RED._("menu.label.displayStatus"),toggle:true,onselect:"core:toggle-status", selected: true},
//null,
// {id:"menu-item-bidi",label:RED._("menu.label.view.textDir"),options:[
// {id:"menu-item-bidi-default",toggle:"text-direction",label:RED._("menu.label.view.defaultDir"),selected: true, onselect:function(s) { if(s){RED.text.bidi.setTextDirection("")}}},
// {id:"menu-item-bidi-ltr",toggle:"text-direction",label:RED._("menu.label.view.ltr"), onselect:function(s) { if(s){RED.text.bidi.setTextDirection("ltr")}}},
// {id:"menu-item-bidi-rtl",toggle:"text-direction",label:RED._("menu.label.view.rtl"), onselect:function(s) { if(s){RED.text.bidi.setTextDirection("rtl")}}},
// {id:"menu-item-bidi-auto",toggle:"text-direction",label:RED._("menu.label.view.auto"), onselect:function(s) { if(s){RED.text.bidi.setTextDirection("auto")}}}
// ]},
// null,
{id:"menu-item-sidebar",label:RED._("menu.label.sidebar.show"),toggle:true,onselect:"core:toggle-sidebar", selected: true},
null
]});
menuOptions.push(null);
menuOptions.push({id:"menu-item-import",label:RED._("menu.label.import"),options:[
{id:"menu-item-import-clipboard",label:RED._("menu.label.clipboard"),onselect:"core:show-import-dialog"},
{id:"menu-item-import-library",label:RED._("menu.label.library"),options:[]}
]});
menuOptions.push({id:"menu-item-export",label:RED._("menu.label.export"),disabled:true,options:[
{id:"menu-item-export-clipboard",label:RED._("menu.label.clipboard"),disabled:true,onselect:"core:show-export-dialog"},
{id:"menu-item-export-library",label:RED._("menu.label.library"),disabled:true,onselect:"core:library-export"}
]});
menuOptions.push(null);
menuOptions.push({id:"menu-item-search",label:RED._("menu.label.search"),onselect:"core:search"});
menuOptions.push(null);
menuOptions.push({id:"menu-item-config-nodes",label:RED._("menu.label.displayConfig"),onselect:"core:show-config-tab"});
menuOptions.push({id:"menu-item-workspace",label:RED._("menu.label.flows"),options:[
{id:"menu-item-workspace-add",label:RED._("menu.label.add"),onselect:"core:add-flow"},
{id:"menu-item-workspace-edit",label:RED._("menu.label.rename"),onselect:"core:edit-flow"},
{id:"menu-item-workspace-delete",label:RED._("menu.label.delete"),onselect:"core:remove-flow"}
]});
menuOptions.push({id:"menu-item-subflow",label:RED._("menu.label.subflows"), options: [
{id:"menu-item-subflow-create",label:RED._("menu.label.createSubflow"),onselect:"core:create-subflow"},
{id:"menu-item-subflow-convert",label:RED._("menu.label.selectionToSubflow"),disabled:true,onselect:"core:convert-to-subflow"},
]});
menuOptions.push(null);
if (RED.settings.theme('palette.editable') !== false) {
menuOptions.push({id:"menu-item-edit-palette",label:RED._("menu.label.editPalette"),onselect:"core:manage-palette"});
menuOptions.push(null);
}
menuOptions.push({id:"menu-item-user-settings",label:RED._("menu.label.settings"),onselect:"core:show-user-settings"});
menuOptions.push(null);
menuOptions.push({id:"menu-item-keyboard-shortcuts",label:RED._("menu.label.keyboardShortcuts"),onselect:"core:show-help"});
menuOptions.push({id:"menu-item-help",
label: RED.settings.theme("menu.menu-item-help.label",RED._("menu.label.help")),
href: RED.settings.theme("menu.menu-item-help.url","http://nodered.org/docs")
});
menuOptions.push({id:"menu-item-node-red-version", label:"v"+RED.settings.version, onselect: "core:show-about" });
RED.view.init();
RED.userSettings.init();
RED.user.init();
RED.library.init();
RED.keyboard.init();
RED.palette.init();
if (RED.settings.theme('palette.editable') !== false) {
RED.palette.editor.init();
} else {
console.log("Palette editor disabled");
}
RED.sidebar.init();
if (RED.settings.theme("projects.enabled",false)) {
RED.projects.init();
} else {
console.log("Projects disabled");
}
RED.subflow.init();
RED.workspaces.init();
RED.clipboard.init();
RED.search.init();
RED.editor.init();
RED.diff.init();
RED.menu.init({id:"btn-sidemenu",options: menuOptions});
RED.deploy.init(RED.settings.theme("deployButton",null));
RED.notifications.init();
RED.actions.add("core:show-about", showAbout);
RED.nodes.init();
RED.comms.connect();
$("#main-container").show();
$(".header-toolbar").show();
loadNodeList();
}
$(function() {
if ((window.location.hostname !== "localhost") && (window.location.hostname !== "127.0.0.1")) {
document.title = document.title+" : "+window.location.hostname;
}
ace.require("ace/ext/language_tools");
RED.i18n.init(function() {
RED.settings.init(loadEditor);
})
});
})();

1385
editor/js/nodes.js Normal file

File diff suppressed because it is too large Load Diff

16
editor/js/red.js Normal file
View File

@@ -0,0 +1,16 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
var RED = {};

213
editor/js/settings.js Normal file
View File

@@ -0,0 +1,213 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.settings = (function () {
var loadedSettings = {};
var userSettings = {};
var settingsDirty = false;
var pendingSave;
var hasLocalStorage = function () {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
};
var set = function (key, value) {
if (!hasLocalStorage()) {
return;
}
if (key === "auth-tokens") {
localStorage.setItem(key, JSON.stringify(value));
} else {
userSettings[key] = value;
saveUserSettings();
}
};
/**
* If the key is not set in the localStorage it returns <i>undefined</i>
* Else return the JSON parsed value
* @param key
* @returns {*}
*/
var get = function (key) {
if (!hasLocalStorage()) {
return undefined;
}
if (key === "auth-tokens") {
return JSON.parse(localStorage.getItem(key));
} else {
return userSettings[key];
}
};
var remove = function (key) {
if (!hasLocalStorage()) {
return;
}
if (key === "auth-tokens") {
localStorage.removeItem(key);
} else {
delete userSettings[key];
saveUserSettings();
}
};
var setProperties = function(data) {
for (var prop in loadedSettings) {
if (loadedSettings.hasOwnProperty(prop) && RED.settings.hasOwnProperty(prop)) {
delete RED.settings[prop];
}
}
for (prop in data) {
if (data.hasOwnProperty(prop)) {
RED.settings[prop] = data[prop];
}
}
loadedSettings = data;
};
var setUserSettings = function(data) {
userSettings = data;
}
var init = function (done) {
var accessTokenMatch = /[?&]access_token=(.*?)(?:$|&)/.exec(window.location.search);
if (accessTokenMatch) {
var accessToken = accessTokenMatch[1];
RED.settings.set("auth-tokens",{access_token: accessToken});
window.location.search = "";
}
$.ajaxSetup({
beforeSend: function(jqXHR,settings) {
// Only attach auth header for requests to relative paths
if (!/^\s*(https?:|\/|\.)/.test(settings.url)) {
var auth_tokens = RED.settings.get("auth-tokens");
if (auth_tokens) {
jqXHR.setRequestHeader("Authorization","Bearer "+auth_tokens.access_token);
}
jqXHR.setRequestHeader("Node-RED-API-Version","v2");
}
}
});
load(done);
}
var load = function(done) {
$.ajax({
headers: {
"Accept": "application/json"
},
dataType: "json",
cache: false,
url: 'settings',
success: function (data) {
setProperties(data);
if (!RED.settings.user || RED.settings.user.anonymous) {
RED.settings.remove("auth-tokens");
}
console.log("Node-RED: " + data.version);
loadUserSettings(done);
},
error: function(jqXHR,textStatus,errorThrown) {
if (jqXHR.status === 401) {
if (/[?&]access_token=(.*?)(?:$|&)/.test(window.location.search)) {
window.location.search = "";
}
RED.user.login(function() { load(done); });
} else {
console.log("Unexpected error loading settings:",jqXHR.status,textStatus);
}
}
});
};
function loadUserSettings(done) {
$.ajax({
headers: {
"Accept": "application/json"
},
dataType: "json",
cache: false,
url: 'settings/user',
success: function (data) {
setUserSettings(data);
done();
},
error: function(jqXHR,textStatus,errorThrown) {
console.log("Unexpected error loading user settings:",jqXHR.status,textStatus);
}
});
}
function saveUserSettings() {
if (RED.user.hasPermission("settings.write")) {
if (pendingSave) {
clearTimeout(pendingSave);
}
pendingSave = setTimeout(function() {
pendingSave = null;
$.ajax({
method: 'POST',
contentType: 'application/json',
url: 'settings/user',
data: JSON.stringify(userSettings),
success: function (data) {
},
error: function(jqXHR,textStatus,errorThrown) {
console.log("Unexpected error saving user settings:",jqXHR.status,textStatus);
}
});
},300);
}
}
function theme(property,defaultValue) {
if (!RED.settings.editorTheme) {
return defaultValue;
}
var parts = property.split(".");
var v = RED.settings.editorTheme;
try {
for (var i=0;i<parts.length;i++) {
v = v[parts[i]];
}
if (v === undefined) {
return defaultValue;
}
return v;
} catch(err) {
return defaultValue;
}
}
return {
init: init,
load: load,
loadUserSettings: loadUserSettings,
set: set,
get: get,
remove: remove,
theme: theme
}
})();

130
editor/js/text/bidi.js Normal file
View File

@@ -0,0 +1,130 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.text = {};
RED.text.bidi = (function() {
var textDir = "";
var LRE = "\u202A",
RLE = "\u202B",
PDF = "\u202C";
function isRTLValue(stringValue) {
var length = stringValue.length;
for (var i=0;i<length;i++) {
if (isBidiChar(stringValue.charCodeAt(i))) {
return true;
}
else if(isLatinChar(stringValue.charCodeAt(i))) {
return false;
}
}
return false;
}
function isBidiChar(c) {
return (c >= 0x05d0 && c <= 0x05ff)||
(c >= 0x0600 && c <= 0x065f)||
(c >= 0x066a && c <= 0x06ef)||
(c >= 0x06fa && c <= 0x07ff)||
(c >= 0xfb1d && c <= 0xfdff)||
(c >= 0xfe70 && c <= 0xfefc);
}
function isLatinChar(c){
return (c > 64 && c < 91)||(c > 96 && c < 123)
}
/**
* Determines the text direction of a given string.
* @param value - the string
*/
function resolveBaseTextDir(value) {
if (textDir == "auto") {
if (isRTLValue(value)) {
return "rtl";
} else {
return "ltr";
}
}
else {
return textDir;
}
}
function onInputChange() {
$(this).attr("dir", resolveBaseTextDir($(this).val()));
}
/**
* Adds event listeners to the Input to ensure its text-direction attribute
* is properly set based on its content.
* @param input - the input field
*/
function prepareInput(input) {
input.on("keyup",onInputChange).on("paste",onInputChange).on("cut",onInputChange);
// Set the initial text direction
onInputChange.call(input);
}
/**
* Enforces the text direction of a given string by adding
* UCC (Unicode Control Characters)
* @param value - the string
*/
function enforceTextDirectionWithUCC(value) {
if (value) {
var dir = resolveBaseTextDir(value);
if (dir == "ltr") {
return LRE + value + PDF;
}
else if (dir == "rtl") {
return RLE + value + PDF;
}
}
return value;
}
/**
* Enforces the text direction for all the spans with style bidiAware under
* workspace or sidebar div
*/
function enforceTextDirectionOnPage() {
$("#workspace").find('span.bidiAware').each(function() {
$(this).attr("dir", resolveBaseTextDir($(this).html()));
});
$("#sidebar").find('span.bidiAware').each(function() {
$(this).attr("dir", resolveBaseTextDir($(this).text()));
});
}
/**
* Sets the text direction preference
* @param dir - the text direction preference
*/
function setTextDirection(dir) {
textDir = dir;
RED.nodes.eachNode(function(n) { n.dirty = true;});
RED.view.redraw();
RED.palette.refresh();
enforceTextDirectionOnPage();
}
return {
setTextDirection: setTextDirection,
enforceTextDirectionWithUCC: enforceTextDirectionWithUCC,
resolveBaseTextDir: resolveBaseTextDir,
prepareInput: prepareInput
}
})();

1330
editor/js/text/format.js Normal file

File diff suppressed because it is too large Load Diff

35
editor/js/ui/actions.js Normal file
View File

@@ -0,0 +1,35 @@
RED.actions = (function() {
var actions = {
}
function addAction(name,handler) {
actions[name] = handler;
}
function removeAction(name) {
delete actions[name];
}
function getAction(name) {
return actions[name];
}
function invokeAction(name) {
if (actions.hasOwnProperty(name)) {
actions[name]();
}
}
function listActions() {
var result = [];
Object.keys(actions).forEach(function(action) {
var shortcut = RED.keyboard.getShortcut(action);
result.push({id:action,scope:shortcut?shortcut.scope:undefined,key:shortcut?shortcut.key:undefined,user:shortcut?shortcut.user:undefined})
})
return result;
}
return {
add: addAction,
remove: removeAction,
get: getAction,
invoke: invokeAction,
list: listActions
}
})();

380
editor/js/ui/clipboard.js Normal file
View File

@@ -0,0 +1,380 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.clipboard = (function() {
var dialog;
var dialogContainer;
var exportNodesDialog;
var importNodesDialog;
var disabled = false;
function setupDialogs() {
dialog = $('<div id="clipboard-dialog" class="hide node-red-dialog"><form class="dialog-form form-horizontal"></form></div>')
.appendTo("body")
.dialog({
modal: true,
autoOpen: false,
width: 500,
resizable: false,
buttons: [
{
id: "clipboard-dialog-cancel",
text: RED._("common.label.cancel"),
click: function() {
$( this ).dialog( "close" );
}
},
{
id: "clipboard-dialog-close",
class: "primary",
text: RED._("common.label.close"),
click: function() {
$( this ).dialog( "close" );
}
},
{
id: "clipboard-dialog-copy",
class: "primary",
text: RED._("clipboard.export.copy"),
click: function() {
$("#clipboard-export").select();
document.execCommand("copy");
document.getSelection().removeAllRanges();
RED.notify(RED._("clipboard.nodesExported"));
$( this ).dialog( "close" );
}
},
{
id: "clipboard-dialog-ok",
class: "primary",
text: RED._("common.label.import"),
click: function() {
RED.view.importNodes($("#clipboard-import").val(),$("#import-tab > a.selected").attr('id') === 'import-tab-new');
$( this ).dialog( "close" );
}
}
],
open: function(e) {
$(this).parent().find(".ui-dialog-titlebar-close").hide();
},
close: function(e) {
}
});
dialogContainer = dialog.children(".dialog-form");
exportNodesDialog =
'<div class="form-row">'+
'<label style="width:auto;margin-right: 10px;" data-i18n="clipboard.export.copy"></label>'+
'<span id="export-range-group" class="button-group">'+
'<a id="export-range-selected" class="editor-button toggle" href="#" data-i18n="clipboard.export.selected"></a>'+
'<a id="export-range-flow" class="editor-button toggle" href="#" data-i18n="clipboard.export.current"></a>'+
'<a id="export-range-full" class="editor-button toggle" href="#" data-i18n="clipboard.export.all"></a>'+
'</span>'+
'</div>'+
'<div class="form-row">'+
'<textarea readonly style="resize: none; width: 100%; border-radius: 4px;font-family: monospace; font-size: 12px; background:#f3f3f3; padding-left: 0.5em; box-sizing:border-box;" id="clipboard-export" rows="5"></textarea>'+
'</div>'+
'<div class="form-row" style="text-align: right;">'+
'<span id="export-format-group" class="button-group">'+
'<a id="export-format-mini" class="editor-button editor-button-small toggle" href="#" data-i18n="clipboard.export.compact"></a>'+
'<a id="export-format-full" class="editor-button editor-button-small toggle" href="#" data-i18n="clipboard.export.formatted"></a>'+
'</span>'+
'</div>';
importNodesDialog = '<div class="form-row">'+
'<textarea style="resize: none; width: 100%; border-radius: 0px;font-family: monospace; font-size: 12px; background:#eee; padding-left: 0.5em; box-sizing:border-box;" id="clipboard-import" rows="5" placeholder="'+
RED._("clipboard.pasteNodes")+
'"></textarea>'+
'</div>'+
'<div class="form-row">'+
'<label style="width:auto;margin-right: 10px;" data-i18n="clipboard.import.import"></label>'+
'<span id="import-tab" class="button-group">'+
'<a id="import-tab-current" class="editor-button toggle selected" href="#" data-i18n="clipboard.export.current"></a>'+
'<a id="import-tab-new" class="editor-button toggle" href="#" data-i18n="clipboard.import.newFlow"></a>'+
'</span>'+
'</div>';
}
function validateImport() {
var importInput = $("#clipboard-import");
var v = importInput.val();
v = v.substring(v.indexOf('['),v.lastIndexOf(']')+1);
try {
JSON.parse(v);
importInput.removeClass("input-error");
importInput.val(v);
$("#clipboard-dialog-ok").button("enable");
} catch(err) {
if (v !== "") {
importInput.addClass("input-error");
}
$("#clipboard-dialog-ok").button("disable");
}
}
function importNodes() {
if (disabled) {
return;
}
dialogContainer.empty();
dialogContainer.append($(importNodesDialog));
dialogContainer.i18n();
$("#clipboard-dialog-ok").show();
$("#clipboard-dialog-cancel").show();
$("#clipboard-dialog-close").hide();
$("#clipboard-dialog-copy").hide();
$("#clipboard-dialog-ok").button("disable");
$("#clipboard-import").keyup(validateImport);
$("#clipboard-import").on('paste',function() { setTimeout(validateImport,10)});
$("#import-tab > a").click(function(evt) {
evt.preventDefault();
if ($(this).hasClass('disabled') || $(this).hasClass('selected')) {
return;
}
$(this).parent().children().removeClass('selected');
$(this).addClass('selected');
});
dialog.dialog("option","title",RED._("clipboard.importNodes")).dialog("open");
}
function exportNodes() {
if (disabled) {
return;
}
dialogContainer.empty();
dialogContainer.append($(exportNodesDialog));
dialogContainer.i18n();
var format = RED.settings.flowFilePretty ? "export-format-full" : "export-format-mini";
$("#export-format-group > a").click(function(evt) {
evt.preventDefault();
if ($(this).hasClass('disabled') || $(this).hasClass('selected')) {
$("#clipboard-export").focus();
return;
}
$(this).parent().children().removeClass('selected');
$(this).addClass('selected');
var flow = $("#clipboard-export").val();
if (flow.length > 0) {
var nodes = JSON.parse(flow);
format = $(this).attr('id');
if (format === 'export-format-full') {
flow = JSON.stringify(nodes,null,4);
} else {
flow = JSON.stringify(nodes);
}
$("#clipboard-export").val(flow);
$("#clipboard-export").focus();
}
});
$("#export-range-group > a").click(function(evt) {
evt.preventDefault();
if ($(this).hasClass('disabled') || $(this).hasClass('selected')) {
$("#clipboard-export").focus();
return;
}
$(this).parent().children().removeClass('selected');
$(this).addClass('selected');
var type = $(this).attr('id');
var flow = "";
var nodes = null;
if (type === 'export-range-selected') {
var selection = RED.view.selection();
// Don't include the subflow meta-port nodes in the exported selection
nodes = RED.nodes.createExportableNodeSet(selection.nodes.filter(function(n) { return n.type !== 'subflow'}));
} else if (type === 'export-range-flow') {
var activeWorkspace = RED.workspaces.active();
nodes = RED.nodes.filterNodes({z:activeWorkspace});
var parentNode = RED.nodes.workspace(activeWorkspace)||RED.nodes.subflow(activeWorkspace);
nodes.unshift(parentNode);
nodes = RED.nodes.createExportableNodeSet(nodes);
} else if (type === 'export-range-full') {
nodes = RED.nodes.createCompleteNodeSet(false);
}
if (nodes !== null) {
if (format === "export-format-full") {
flow = JSON.stringify(nodes,null,4);
} else {
flow = JSON.stringify(nodes);
}
}
if (flow.length > 0) {
$("#export-copy").removeClass('disabled');
} else {
$("#export-copy").addClass('disabled');
}
$("#clipboard-export").val(flow);
$("#clipboard-export").focus();
})
$("#clipboard-dialog-ok").hide();
$("#clipboard-dialog-cancel").hide();
$("#clipboard-dialog-copy").hide();
$("#clipboard-dialog-close").hide();
var selection = RED.view.selection();
if (selection.nodes) {
$("#export-range-selected").click();
} else {
$("#export-range-selected").addClass('disabled').removeClass('selected');
$("#export-range-flow").click();
}
if (format === "export-format-full") {
$("#export-format-full").click();
} else {
$("#export-format-mini").click();
}
$("#clipboard-export")
.focus(function() {
var textarea = $(this);
textarea.select();
textarea.mouseup(function() {
textarea.unbind("mouseup");
return false;
})
});
dialog.dialog("option","title",RED._("clipboard.exportNodes")).dialog( "open" );
$("#clipboard-export").focus();
if (!document.queryCommandSupported("copy")) {
$("#clipboard-dialog-cancel").hide();
$("#clipboard-dialog-close").show();
} else {
$("#clipboard-dialog-cancel").show();
$("#clipboard-dialog-copy").show();
}
}
function hideDropTarget() {
$("#dropTarget").hide();
RED.keyboard.remove("escape");
}
function copyText(value,element,msg) {
var truncated = false;
if (typeof value !== "string" ) {
value = JSON.stringify(value, function(key,value) {
if (value !== null && typeof value === 'object') {
if (value.__encoded__ && value.hasOwnProperty('data') && value.hasOwnProperty('length')) {
truncated = value.data.length !== value.length;
return value.data;
}
}
return value;
});
}
if (truncated) {
msg += "_truncated";
}
$("#clipboard-hidden").val(value).select();
var result = document.execCommand("copy");
if (result && element) {
var popover = RED.popover.create({
target: element,
direction: 'left',
size: 'small',
content: RED._(msg)
});
setTimeout(function() {
popover.close();
},1000);
popover.open();
}
return result;
}
return {
init: function() {
setupDialogs();
$('<input type="text" id="clipboard-hidden">').appendTo("body");
RED.events.on("view:selection-changed",function(selection) {
if (!selection.nodes) {
RED.menu.setDisabled("menu-item-export",true);
RED.menu.setDisabled("menu-item-export-clipboard",true);
RED.menu.setDisabled("menu-item-export-library",true);
} else {
RED.menu.setDisabled("menu-item-export",false);
RED.menu.setDisabled("menu-item-export-clipboard",false);
RED.menu.setDisabled("menu-item-export-library",false);
}
});
RED.actions.add("core:show-export-dialog",exportNodes);
RED.actions.add("core:show-import-dialog",importNodes);
RED.events.on("editor:open",function() { disabled = true; });
RED.events.on("editor:close",function() { disabled = false; });
RED.events.on("search:open",function() { disabled = true; });
RED.events.on("search:close",function() { disabled = false; });
RED.events.on("type-search:open",function() { disabled = true; });
RED.events.on("type-search:close",function() { disabled = false; });
$('#chart').on("dragenter",function(event) {
if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1 ||
$.inArray("Files",event.originalEvent.dataTransfer.types) != -1) {
$("#dropTarget").css({display:'table'});
RED.keyboard.add("*", "escape" ,hideDropTarget);
}
});
$('#dropTarget').on("dragover",function(event) {
if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1 ||
$.inArray("Files",event.originalEvent.dataTransfer.types) != -1) {
event.preventDefault();
}
})
.on("dragleave",function(event) {
hideDropTarget();
})
.on("drop",function(event) {
if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1) {
var data = event.originalEvent.dataTransfer.getData("text/plain");
data = data.substring(data.indexOf('['),data.lastIndexOf(']')+1);
RED.view.importNodes(data);
} else if ($.inArray("Files",event.originalEvent.dataTransfer.types) != -1) {
var files = event.originalEvent.dataTransfer.files;
if (files.length === 1) {
var file = files[0];
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
RED.view.importNodes(e.target.result);
};
})(file);
reader.readAsText(file);
}
}
hideDropTarget();
event.preventDefault();
});
},
import: importNodes,
export: exportNodes,
copyText: copyText
}
})();

View File

@@ -0,0 +1,131 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
(function($) {
$.widget( "nodered.checkboxSet", {
_create: function() {
var that = this;
this.uiElement = this.element.wrap( "<span>" ).parent();
this.uiElement.addClass("red-ui-checkboxSet");
if (this.options.parent) {
this.parent = this.options.parent;
this.parent.checkboxSet('addChild',this.element);
}
this.children = [];
this.partialFlag = false;
this.stateValue = 0;
var initialState = this.element.prop('checked');
this.options = [
$('<span class="red-ui-checkboxSet-option hide"><i class="fa fa-square-o"></i></span>').appendTo(this.uiElement),
$('<span class="red-ui-checkboxSet-option hide"><i class="fa fa-check-square-o"></i></span>').appendTo(this.uiElement),
$('<span class="red-ui-checkboxSet-option hide"><i class="fa fa-minus-square-o"></i></span>').appendTo(this.uiElement)
];
if (initialState) {
this.options[1].show();
} else {
this.options[0].show();
}
this.element.change(function() {
if (this.checked) {
that.options[0].hide();
that.options[1].show();
that.options[2].hide();
} else {
that.options[1].hide();
that.options[0].show();
that.options[2].hide();
}
var isChecked = this.checked;
that.children.forEach(function(child) {
child.checkboxSet('state',isChecked,false,true);
})
})
this.uiElement.click(function(e) {
e.stopPropagation();
// state returns null for a partial state. Clicking on that should
// result in false.
that.state((that.state()===false)?true:false);
})
if (this.parent) {
this.parent.checkboxSet('updateChild',this);
}
},
_destroy: function() {
if (this.parent) {
this.parent.checkboxSet('removeChild',this.element);
}
},
addChild: function(child) {
var that = this;
this.children.push(child);
},
removeChild: function(child) {
var index = this.children.indexOf(child);
if (index > -1) {
this.children.splice(index,1);
}
},
updateChild: function(child) {
var checkedCount = 0;
this.children.forEach(function(c,i) {
if (c.checkboxSet('state') === true) {
checkedCount++;
}
});
if (checkedCount === 0) {
this.state(false,true);
} else if (checkedCount === this.children.length) {
this.state(true,true);
} else {
this.state(null,true);
}
},
disable: function() {
this.uiElement.addClass('disabled');
},
state: function(state,suppressEvent,suppressParentUpdate) {
if (arguments.length === 0) {
return this.partialFlag?null:this.element.is(":checked");
} else {
this.partialFlag = (state === null);
var trueState = this.partialFlag||state;
this.element.prop('checked',trueState);
if (state === true) {
this.options[0].hide();
this.options[1].show();
this.options[2].hide();
} else if (state === false) {
this.options[2].hide();
this.options[1].hide();
this.options[0].show();
} else if (state === null) {
this.options[0].hide();
this.options[1].hide();
this.options[2].show();
}
if (!suppressEvent) {
this.element.trigger('change',null);
}
if (!suppressParentUpdate && this.parent) {
this.parent.checkboxSet('updateChild',this);
}
}
}
})
})(jQuery);

View File

@@ -0,0 +1,332 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
(function($) {
/**
* options:
* - addButton : boolean|string - text for add label, default 'add'
* - height : number|'auto'
* - resize : function - called when list as a whole is resized
* - resizeItem : function(item) - called to resize individual item
* - sortable : boolean|string - string is the css selector for handle
* - sortItems : function(items) - when order of items changes
* - connectWith : css selector of other sortables
* - removable : boolean - whether to display delete button on items
* - addItem : function(row,index,itemData) - when an item is added
* - removeItem : function(itemData) - called when an item is removed
* - filter : function(itemData) - called for each item to determine if it should be shown
* - sort : function(itemDataA,itemDataB) - called to sort items
* - scrollOnAdd : boolean - whether to scroll to newly added items
* methods:
* - addItem(itemData)
* - removeItem(itemData)
* - width(width)
* - height(height)
* - items()
* - empty()
* - filter(filter)
* - sort(sort)
* - length()
*/
$.widget( "nodered.editableList", {
_create: function() {
var that = this;
this.element.addClass('red-ui-editableList-list');
this.uiWidth = this.element.width();
this.uiContainer = this.element
.wrap( "<div>" )
.parent();
if (this.options.header) {
this.options.header.addClass("red-ui-editableList-header");
this.borderContainer = this.uiContainer.wrap("<div>").parent();
this.borderContainer.prepend(this.options.header);
this.topContainer = this.borderContainer.wrap("<div>").parent();
} else {
this.topContainer = this.uiContainer.wrap("<div>").parent();
}
this.topContainer.addClass('red-ui-editableList');
if (this.options.class) {
this.topContainer.addClass(this.options.class);
}
if (this.options.addButton !== false) {
var addLabel;
if (typeof this.options.addButton === 'string') {
addLabel = this.options.addButton
} else {
if (RED && RED._) {
addLabel = RED._("editableList.add");
} else {
addLabel = 'add';
}
}
$('<a href="#" class="editor-button editor-button-small red-ui-editableList-addButton" style="margin-top: 4px;"><i class="fa fa-plus"></i> '+addLabel+'</a>')
.appendTo(this.topContainer)
.click(function(evt) {
evt.preventDefault();
that.addItem({});
});
}
if (this.element.css("position") === "absolute") {
["top","left","bottom","right"].forEach(function(s) {
var v = that.element.css(s);
if (v!=="auto" && v!=="") {
that.topContainer.css(s,v);
that.uiContainer.css(s,"0");
that.element.css(s,'auto');
}
})
this.element.css("position","static");
this.topContainer.css("position","absolute");
this.uiContainer.css("position","absolute");
}
if (this.options.header) {
this.borderContainer.addClass("red-ui-editableList-border");
} else {
this.uiContainer.addClass("red-ui-editableList-border");
}
this.uiContainer.addClass("red-ui-editableList-container");
this.uiHeight = this.element.height();
this.activeFilter = this.options.filter||null;
this.activeSort = this.options.sort||null;
this.scrollOnAdd = this.options.scrollOnAdd;
if (this.scrollOnAdd === undefined) {
this.scrollOnAdd = true;
}
var minHeight = this.element.css("minHeight");
if (minHeight !== '0px') {
this.uiContainer.css("minHeight",minHeight);
this.element.css("minHeight",0);
}
var maxHeight = this.element.css("maxHeight");
if (maxHeight !== '0px') {
this.uiContainer.css("maxHeight",maxHeight);
this.element.css("maxHeight",null);
}
if (this.options.height !== 'auto') {
this.uiContainer.css("overflow-y","scroll");
if (!isNaN(this.options.height)) {
this.uiHeight = this.options.height;
}
}
this.element.height('auto');
var attrStyle = this.element.attr('style');
var m;
if ((m = /width\s*:\s*(\d+%)/i.exec(attrStyle)) !== null) {
this.element.width('100%');
this.uiContainer.width(m[1]);
}
if (this.options.sortable) {
var handle = (typeof this.options.sortable === 'string')?
this.options.sortable :
".red-ui-editableList-item-handle";
var sortOptions = {
axis: "y",
update: function( event, ui ) {
if (that.options.sortItems) {
that.options.sortItems(that.items());
}
},
handle:handle,
cursor: "move",
tolerance: "pointer",
forcePlaceholderSize:true,
placeholder: "red-ui-editabelList-item-placeholder",
start: function(e, ui){
ui.placeholder.height(ui.item.height()-4);
}
};
if (this.options.connectWith) {
sortOptions.connectWith = this.options.connectWith;
}
this.element.sortable(sortOptions);
}
this._resize();
// this.menu = this._createMenu(this.types, function(v) { that.type(v) });
// this.type(this.options.default||this.types[0].value);
},
_resize: function() {
var currentFullHeight = this.topContainer.height();
var innerHeight = this.uiContainer.height();
var delta = currentFullHeight - innerHeight;
if (this.uiHeight !== 0) {
this.uiContainer.height(this.uiHeight-delta);
}
if (this.options.resize) {
this.options.resize();
}
if (this.options.resizeItem) {
var that = this;
this.element.children().each(function(i) {
that.options.resizeItem($(this).find(".red-ui-editableList-item-content"),i);
});
}
},
_destroy: function() {
},
_refreshFilter: function() {
var that = this;
var count = 0;
if (!this.activeFilter) {
return this.element.children().show();
}
var items = this.items();
items.each(function (i,el) {
var data = el.data('data');
try {
if (that.activeFilter(data)) {
el.parent().show();
count++;
} else {
el.parent().hide();
}
} catch(err) {
console.log(err);
el.parent().show();
count++;
}
});
return count;
},
_refreshSort: function() {
if (this.activeSort) {
var items = this.element.children();
var that = this;
items.sort(function(A,B) {
return that.activeSort($(A).find(".red-ui-editableList-item-content").data('data'),$(B).find(".red-ui-editableList-item-content").data('data'));
});
$.each(items,function(idx,li) {
that.element.append(li);
})
}
},
width: function(desiredWidth) {
this.uiWidth = desiredWidth;
this._resize();
},
height: function(desiredHeight) {
this.uiHeight = desiredHeight;
this._resize();
},
addItem: function(data) {
var that = this;
data = data || {};
var li = $('<li>');
var added = false;
if (this.activeSort) {
var items = this.items();
var skip = false;
items.each(function(i,el) {
if (added) { return }
var itemData = el.data('data');
if (that.activeSort(data,itemData) < 0) {
li.insertBefore(el.closest("li"));
added = true;
}
});
}
if (!added) {
li.appendTo(this.element);
}
var row = $('<div/>').addClass("red-ui-editableList-item-content").appendTo(li);
row.data('data',data);
if (this.options.sortable === true) {
$('<i class="red-ui-editableList-item-handle fa fa-bars"></i>').appendTo(li);
li.addClass("red-ui-editableList-item-sortable");
}
if (this.options.removable) {
var deleteButton = $('<a/>',{href:"#",class:"red-ui-editableList-item-remove editor-button editor-button-small"}).appendTo(li);
$('<i/>',{class:"fa fa-remove"}).appendTo(deleteButton);
li.addClass("red-ui-editableList-item-removable");
deleteButton.click(function(evt) {
evt.preventDefault();
var data = row.data('data');
li.addClass("red-ui-editableList-item-deleting")
li.fadeOut(300, function() {
$(this).remove();
if (that.options.removeItem) {
that.options.removeItem(data);
}
});
});
}
if (this.options.addItem) {
var index = that.element.children().length-1;
setTimeout(function() {
that.options.addItem(row,index,data);
if (that.activeFilter) {
try {
if (!that.activeFilter(data)) {
li.hide();
}
} catch(err) {
}
}
if (!that.activeSort && that.scrollOnAdd) {
setTimeout(function() {
that.uiContainer.scrollTop(that.element.height());
},0);
}
},0);
}
},
addItems: function(items) {
for (var i=0; i<items.length;i++) {
this.addItem(items[i]);
}
},
removeItem: function(data) {
var items = this.element.children().filter(function(f) {
return data === $(this).find(".red-ui-editableList-item-content").data('data');
});
items.remove();
if (this.options.removeItem) {
this.options.removeItem(data);
}
},
items: function() {
return this.element.children().map(function(i) { return $(this).find(".red-ui-editableList-item-content"); });
},
empty: function() {
this.element.empty();
},
filter: function(filter) {
if (filter !== undefined) {
this.activeFilter = filter;
}
return this._refreshFilter();
},
sort: function(sort) {
if (sort !== undefined) {
this.activeSort = sort;
}
return this._refreshSort();
},
length: function() {
return this.element.children().length;
}
});
})(jQuery);

267
editor/js/ui/common/menu.js Normal file
View File

@@ -0,0 +1,267 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.menu = (function() {
var menuItems = {};
function createMenuItem(opt) {
var item;
if (opt !== null && opt.id) {
var themeSetting = RED.settings.theme("menu."+opt.id);
if (themeSetting === false) {
return null;
}
}
function setInitialState() {
var savedStateActive = RED.settings.get("menu-" + opt.id);
if (opt.setting) {
// May need to migrate pre-0.17 setting
if (savedStateActive !== null) {
RED.settings.set(opt.setting,savedStateActive);
RED.settings.remove("menu-" + opt.id);
} else {
savedStateActive = RED.settings.get(opt.setting);
}
}
if (savedStateActive) {
link.addClass("active");
triggerAction(opt.id,true);
} else if (savedStateActive === false) {
link.removeClass("active");
triggerAction(opt.id,false);
} else if (opt.hasOwnProperty("selected")) {
if (opt.selected) {
link.addClass("active");
} else {
link.removeClass("active");
}
triggerAction(opt.id,opt.selected);
}
}
if (opt === null) {
item = $('<li class="divider"></li>');
} else {
item = $('<li></li>');
if (opt.group) {
item.addClass("menu-group-"+opt.group);
}
var linkContent = '<a '+(opt.id?'id="'+opt.id+'" ':'')+'tabindex="-1" href="#">';
if (opt.toggle) {
linkContent += '<i class="fa fa-square pull-left"></i>';
linkContent += '<i class="fa fa-check-square pull-left"></i>';
}
if (opt.icon !== undefined) {
if (/\.png/.test(opt.icon)) {
linkContent += '<img src="'+opt.icon+'"/> ';
} else {
linkContent += '<i class="'+(opt.icon?opt.icon:'" style="display: inline-block;"')+'"></i> ';
}
}
if (opt.sublabel) {
linkContent += '<span class="menu-label-container"><span class="menu-label">'+opt.label+'</span>'+
'<span class="menu-sublabel">'+opt.sublabel+'</span></span>'
} else {
linkContent += '<span class="menu-label">'+opt.label+'</span>'
}
linkContent += '</a>';
var link = $(linkContent).appendTo(item);
menuItems[opt.id] = opt;
if (opt.onselect) {
link.click(function(e) {
e.preventDefault();
if ($(this).parent().hasClass("disabled")) {
return;
}
if (opt.toggle) {
var selected = isSelected(opt.id);
if (typeof opt.toggle === "string") {
if (!selected) {
for (var m in menuItems) {
if (menuItems.hasOwnProperty(m)) {
var mi = menuItems[m];
if (mi.id != opt.id && opt.toggle == mi.toggle) {
setSelected(mi.id,false);
}
}
}
setSelected(opt.id,true);
}
} else {
setSelected(opt.id, !selected);
}
} else {
triggerAction(opt.id);
}
});
if (opt.toggle) {
setInitialState();
}
} else if (opt.href) {
link.attr("target","_blank").attr("href",opt.href);
} else if (!opt.options) {
item.addClass("disabled");
link.click(function(event) {
event.preventDefault();
});
}
if (opt.options) {
item.addClass("dropdown-submenu pull-left");
var submenu = $('<ul id="'+opt.id+'-submenu" class="dropdown-menu"></ul>').appendTo(item);
for (var i=0;i<opt.options.length;i++) {
var li = createMenuItem(opt.options[i]);
if (li) {
li.appendTo(submenu);
}
}
}
if (opt.disabled) {
item.addClass("disabled");
}
}
return item;
}
function createMenu(options) {
var menuParent = $("#"+options.id);
var topMenu = $("<ul/>",{id:options.id+"-submenu", class:"dropdown-menu pull-right"});
if (menuParent.length === 1) {
topMenu.insertAfter(menuParent);
}
var lastAddedSeparator = false;
for (var i=0;i<options.options.length;i++) {
var opt = options.options[i];
if (opt !== null || !lastAddedSeparator) {
var li = createMenuItem(opt);
if (li) {
li.appendTo(topMenu);
lastAddedSeparator = (opt === null);
}
}
}
return topMenu;
}
function triggerAction(id, args) {
var opt = menuItems[id];
var callback = opt.onselect;
if (typeof opt.onselect === 'string') {
callback = RED.actions.get(opt.onselect);
}
if (callback) {
callback.call(opt,args);
} else {
console.log("No callback for",id,opt.onselect);
}
}
function isSelected(id) {
return $("#" + id).hasClass("active");
}
function setSelected(id,state) {
if (isSelected(id) == state) {
return;
}
var opt = menuItems[id];
if (state) {
$("#"+id).addClass("active");
} else {
$("#"+id).removeClass("active");
}
if (opt && opt.onselect) {
triggerAction(opt.id,state);
}
RED.settings.set(opt.setting||("menu-"+opt.id), state);
}
function toggleSelected(id) {
setSelected(id,!isSelected(id));
}
function setDisabled(id,state) {
if (state) {
$("#"+id).parent().addClass("disabled");
} else {
$("#"+id).parent().removeClass("disabled");
}
}
function addItem(id,opt) {
var item = createMenuItem(opt);
if (opt.group) {
var groupItems = $("#"+id+"-submenu").children(".menu-group-"+opt.group);
if (groupItems.length === 0) {
item.appendTo("#"+id+"-submenu");
} else {
for (var i=0;i<groupItems.length;i++) {
var groupItem = groupItems[i];
var label = $(groupItem).find(".menu-label").html();
if (opt.label < label) {
$(groupItem).before(item);
break;
}
}
if (i === groupItems.length) {
item.appendTo("#"+id+"-submenu");
}
}
} else {
item.appendTo("#"+id+"-submenu");
}
}
function removeItem(id) {
$("#"+id).parent().remove();
}
function setAction(id,action) {
var opt = menuItems[id];
if (opt) {
opt.onselect = action;
}
}
return {
init: createMenu,
setSelected: setSelected,
isSelected: isSelected,
toggleSelected: toggleSelected,
setDisabled: setDisabled,
addItem: addItem,
removeItem: removeItem,
setAction: setAction
//TODO: add an api for replacing a submenu - see library.js:loadFlowLibrary
}
})();

View File

@@ -0,0 +1,81 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.panels = (function() {
function createPanel(options) {
var container = options.container || $("#"+options.id);
var children = container.children();
if (children.length !== 2) {
throw new Error("Container must have exactly two children");
}
container.addClass("red-ui-panels");
var separator = $('<div class="red-ui-panels-separator"></div>').insertAfter(children[0]);
var startPosition;
var panelHeights = [];
var modifiedHeights = false;
var panelRatio;
separator.draggable({
axis: "y",
containment: container,
scroll: false,
start:function(event,ui) {
var height = container.height();
startPosition = ui.position.top;
panelHeights = [$(children[0]).height(),$(children[1]).height()];
},
drag: function(event,ui) {
var height = container.height();
var delta = ui.position.top-startPosition;
var newHeights = [panelHeights[0]+delta,panelHeights[1]-delta];
$(children[0]).height(newHeights[0]);
$(children[1]).height(newHeights[1]);
if (options.resize) {
options.resize(newHeights[0],newHeights[1]);
}
ui.position.top -= delta;
panelRatio = newHeights[0]/height;
},
stop:function(event,ui) {
modifiedHeights = true;
}
});
return {
resize: function(height) {
var panelHeights = [$(children[0]).height(),$(children[1]).height()];
container.height(height);
if (modifiedHeights) {
var topPanelHeight = panelRatio*height;
var bottomPanelHeight = height - topPanelHeight - 48;
panelHeights = [topPanelHeight,bottomPanelHeight];
$(children[0]).height(panelHeights[0]);
$(children[1]).height(panelHeights[1]);
}
if (options.resize) {
options.resize(panelHeights[0],panelHeights[1]);
}
}
}
}
return {
create: createPanel
}
})();

View File

@@ -0,0 +1,149 @@
/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
RED.popover = (function() {
var deltaSizes = {
"default": {
top: 10,
leftRight: 17,
leftLeft: 25
},
"small": {
top: 5,
leftRight: 17,
leftLeft: 16
}
}
function createPopover(options) {
var target = options.target;
var direction = options.direction || "right";
var trigger = options.trigger;
var content = options.content;
var delay = options.delay;
var autoClose = options.autoClose;
var width = options.width||"auto";
var size = options.size||"default";
if (!deltaSizes[size]) {
throw new Error("Invalid RED.popover size value:",size);
}
var timer = null;
var active;
var div;
var openPopup = function(instant) {
if (active) {
div = $('<div class="red-ui-popover red-ui-popover-'+direction+'"></div>').appendTo("body");
if (size !== "default") {
div.addClass("red-ui-popover-size-"+size);
}
if (typeof content === 'function') {
content.call(res).appendTo(div);
} else {
div.html(content);
}
if (width !== "auto") {
div.width(width);
}
var targetPos = target.offset();
var targetWidth = target.width();
var targetHeight = target.height();
var divHeight = div.height();
var divWidth = div.width();
if (direction === 'right') {
div.css({top: targetPos.top+targetHeight/2-divHeight/2-deltaSizes[size].top,left:targetPos.left+targetWidth+deltaSizes[size].leftRight});
} else if (direction === 'left') {
div.css({top: targetPos.top+targetHeight/2-divHeight/2-deltaSizes[size].top,left:targetPos.left-deltaSizes[size].leftLeft-divWidth});
}
if (instant) {
div.show();
} else {
div.fadeIn("fast");
}
}
}
var closePopup = function(instant) {
if (!active) {
if (div) {
if (instant) {
$(this).remove();
} else {
div.fadeOut("fast",function() {
$(this).remove();
});
}
div = null;
}
}
}
if (trigger === 'hover') {
target.on('mouseenter',function(e) {
clearTimeout(timer);
active = true;
timer = setTimeout(openPopup,delay.show);
});
target.on('mouseleave', function(e) {
if (timer) {
clearTimeout(timer);
}
active = false;
setTimeout(closePopup,delay.hide);
});
} else if (trigger === 'click') {
target.click(function(e) {
e.preventDefault();
e.stopPropagation();
active = !active;
if (!active) {
closePopup();
} else {
openPopup();
}
});
} else if (autoClose) {
setTimeout(function() {
active = false;
closePopup();
},autoClose);
}
var res = {
setContent: function(_content) {
content = _content;
return res;
},
open: function (instant) {
active = true;
openPopup(instant);
return res;
},
close: function (instant) {
active = false;
closePopup(instant);
return res;
}
}
return res;
}
return {
create: createPopover
}
})();

Some files were not shown because too many files have changed in this diff Show More