Editor for the Advanced Graph Language Environment
Version: v6.4.2 (8eac67d2c4a8918c5a97dcef7adb2b4cf9941879)
ICRAR - International Centre for Radio Astronomy Research
(c) UWA - The University of Western Australia, 2016
Copyright by UWA (in the framework of the ICRAR)
All rights reserved
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
v6.4.2 (2024/07/23)
- Better sizing of modal dialogs
- Right window displays the correct tab more of the time
- Added more checks for PythonObject and PythonMemberFunction nodes
- Fixes for Undo when selecting/deleting all nodes, and when adding/removing nodes from constructs
- Hierarchy now scrolls to make a newly selected node visible
- New styling for "loop aware" edges
- Improvements to "loop aware" edge checking
- Major revision to graph checking for warnings and errors
- Re-use graph checking to give user feedback when creating new edges
- Better automatic suggestions and styling when dragging a new edge
- Better port highlighting
- Better delete message that doesn't "double count" children of selected objects
- Updated to use newer docker compose options
- Updated custom font and icons
v6.4.1 (2024/06/25)
- Branch components now use 'true' and 'false' ports instead of 'yes' and 'no'
- Fixed port hover text
- Tooltips on embedded app sockets
- Hide 'encoding' attribute for non-port fields
- Minor fixes
v6.4.0 (2024/06/25)
- Updated all constructs to have input and output applications
- Detection of more types of graph errors and warnings
- Improved fix functions for graph errors and warnings
- Ctrl + Shift + drag to deselect multiple nodes from current selection
- Improved "Browse DockerHub" modal
- Re-implemented screenshot button in navbar
- Improved display of construct embedded applications, and empty slots when no application is specified
- Additional embedded application related items in right click menu
- Added 'encoding' attribute to fields(ports)
- Validation of filenames when saving/committing graphs and palettes
- Big improvement to the visualisation of graph errors
v6.3.0 (2024/05/22)
- Fix for poor performance when opening fields table with large number of fields
- New loading animation "planets", used when loading the fields table etc
- Fixed node selection in hierarchy
- Better positioning of ports, especially unconnected ports
- Improvements to Shift, Ctrl and Alt object selection and dragging
- Code quality and linting pass
- Fixed "Exclusive Force Node" bug
- Disabled testcafe unit tests
- Prevent popups at several times when they get in the way of the user's mouse
- Improvements to mixed text and markdown popups
- Completely client-side graph loading
- Caching of palettes/schemas in localStorage
- Better centering of subgraph constructs
- Added options and improved layout of the right click menus
- Editing of node names directly above nodes
- Inspector description is editable or displays markdown
- Better user feedback in situations where user actions are not possible
- Fix function for missing fields on nodes
- Re-added "Browse DockerHub" button
- Fixed issues with Palette search
- New font
v6.2.8 (2024/03/26)
- EAGLEpi, the new html graph renderer
- countless fixes and improvements
v6.2.0 (2023/07/03)
- Fixed to the "edit field" modal
- Improvements to field table, including searching
- Re-design of node/edge inspector (most information is now in the field table)
- Improvements to graph checking, additional warnings about missing fields for different node categories
- Context menu when dropping an edge in empty space on the graph
- New icons!
v6.1.1 (2023/05/23)
- Initial functionality to add options to select-type fields
- Fix for broken translator buttons
v6.1.0 (2023/05/15)
- Big revision of settings, user interface modes and editing permissions
- Hide/show columns in parameters table
v6.0.0 (2023/05/08)
- Remove idText from nodes and fields
- Check correctness of embedded applications within construct components
- Added loading on graphs from url within the EAGLE url
- Check graph now includes rules for missing fields on components
v5.1.1 (2023/04/17)
- Fixed issue where '+' button within inspector became obscured by accordion
- Minor tutorial fixes
- CSS fix for display of embedded applications in the inspector
- Whole header of inspector now expands accordion
v5.1.0 (2023/04/14)
- Snap-to-grid mode
- Users can now set attributes as 'key attributes' as view only those in a key attributes table
- Improvements to right-click context menu in graph editor
- Useful parts of 'Graph Components' palette moved to other palettes, and the 'Graph Components' palette now no longer loaded at startup
- Documentation updates
- Added button to delete embedded applications in the inspector
- Improvements to graph checking and automatic fixing
- Render markdown to html in component descriptions
- Tutorial System with new Introduction and HelloWorld tutorials
- Added PythonMemberFunction and PythonObject categories
- ModelData modal dialog to show information about graph/palette files
- Ctrl-C now also copies children of selected objects, use Shift-Ctrl-C to copy objects without children
- Fixes for edge rendering when connected to InputOutput ports, and within constructs
- Improvements to edge auto-completion and component suggestions
- Disable spammy error messages when dragging edges
- Improvements to port type matching, especially ports with 'Object' type or prefix
- Fixed bug where changing a component parameter usage would remove a port and therefore orphan an edge
- Added support for ConstructParameter parameter type
- Improvements to accordion UI in inspector
v5.0.2 (2023/01/12)
- Fixed an issue with edge selection
- Featureful "right click" context menu
- Copy/paste selection to/from clipboard with Ctrl+C/Ctrl+V
- Select all with Ctrl+A, clear selection with Escape
- Fixed a performance issue rendering too many icons
- Bug fix for types of parameters within construct apps
- Now possible to shift-drag selection regions within constructs
- Shift click to toggle selection of single objects
v5.0.1 (2022/12/09)
- Fixed the show error button not switching tab if in the hierarchy tab
- "Edit field" modal title now includes the node and field names
- Added "key parameters" heart toggle to the edit field modal
- idText in the parameter table now copies displayText if empty
- Fixed error when dragging side windows past their smallest size
- Tooltip fixes
- Checks on parameter table modal input
- Clear selected objects when loading graphs or deleting palettes
- Filter files in repositories by file name
- README.md and other markdown files within repositories are now viewable
- Fixed rendering of start location of comment links when the start node is collapsed
v5.0.0 (2022/11/03)
- Too many bugfixes to list!
- Switch from the confusing 'Complex' data type to use the generic 'Object' instead
- Allow users to change edge data type
- Better error and warning layout and graph error automatic fix and show functions
- 'Fix All' button the 'check graph' modal
- 'Hierarchy' view available in right-hand window
- Workaround for loading large files (>1Mb) from git repositories
- Added reproducibility data to graph/palette files
- 'Update Component' feature available in navbar
- New 'PyFuncApp' component, new 'Data' component
- Added a UI Mode setting, mode can also be set via a URL
- Improved 'default' translation UI
- Detect edges dragged into empty space and suggest new components for the destination
- Improved Parameter Table UI
- Allow users to set "keyAttribute" (favourite) fields
- New Parameter Table mode that displays only key attributes for full graph
- Performance improvements for large palettes
- Improvements to settings behaviour
- Resizeable modals
v4.5.0 (2022/06/28)
- Improvements to shift-clicking (add to selection), shift-dragging (select region) and selection of iconified nodes
- Display edge errors/warnings in edge inspector
- Detect duplicate edges in graphs and add to error messages
- Improved display of errors/warning during file loading
- Switched to matching ports based on underlying data type, rather than port name
- Undo/redo memory savings
- Improved display of node titles in graph view
- Shift-Delete will delete selection but maintain children of selection
- More info when deleting nodes on how many nodes and children will be deleted
- Cleanup of 'Expert mode' setting, addition of new 'Developer' section in settings (visible in Expert Mode)
- Easier resizing of side panels
- New navbar button to hide/show data nodes in graph view
- Updated navbar introduction text
- Clicks on input/output application names drawn within constructs in the graph view now open the app in the inspector
- Single parameters table now contains all component parameters, application arguments and input/output ports
- Connecting two application components with an edge now generates a Memory component by default, instead of prompting the user to choose
- Param/Arg/Port types are all stored as strings now, to allow for a completely custom ports
v4.4.0 (2022/05/25)
- Undo/Redo (Z/Shift-Z)
- Overhaul of editing permissions settings, and addition of 'Expert mode'
- Infrequently-used DALiuGE engine parameters (e.g. data_volume) now hidden unless 'Expert Mode' is enabled
- Improvements to appearance and usability of the Parameter Table
- Node event-type ports are now rendered as triangles
- Fixes for orphaned tooltips appearing when UI changes occurred
- Updated jQueryUI with version with tooltip support removed
- Added 'closes loop' attribute to edges, which modifies group_start/group_end of connected nodes
- Improvements to default palettes and new node categories (DynlibProcApp)
- Update to use IdText/DisplayText attributes instead of the easily confused name/text
- Additional usability improvements to the Explore Palettes UI
v4.3.0 (2022/04/07)
- Redesigned Explore Palettes interface
- Fetch the JSON schema for graphs from the DALiuGE repository
- Added password and JSON data types
- Validation of parameter values
- Improvements to resizing of left and right-hand windows
- UI to edit node category
- New EnvironmentVariables component
- Support for markdown in component descriptions
- User changes within settings modal can be discarded
- New icon for SharedMemory component
- Added slim docker build
- New Parameter Table UI to easily edit many parameters quickly
- Reproducibility Mode select on the Translation tab
v4.2.0 (2022/02/15)
- Improved summary of selected node when multiple nodes selected
- Tooltips for palette search feature
- Updated JSON schemas for graph and palette
- Load/save/display "application arguments" within components
- Additional functionality within palette "triple dot" menu, reload etc
- Improved settings modal UI
- Save function now defaults to Save As if existing location unknown
- Improvements to Keyboard Shortcuts modal
- Support for new ParameterSet component
- Support for new SharedMemory component
- Some text inputs expand to textareas when focussed, for easier editing
- Added "select"-type parameters, where users can choose from a list of valid options
- New UI for Graph warnings/errors modal
- EAGLE now uses palettes fetched from the DALiuGE repo at startup
- Added "positional" attribute to parameters
v4.1.0 (2021/12/02)
- Intermediate nodes automatically placed along new edges now contain all ports/parameters from the template palette
- Improvements when saving files to git and local disk
- Tooltip improvements
- Allow dragging multiple components between palettes
- "Triple dot" menu added to palettes to contain various functions
- Split graph loading errors into errors and warnings
- Search for components within palettes
- Search for parameters within components
- Auto-completion of edges now works with ports on applications embedded within constructs
- Auto-completion of edges now works when dragging in reverse
- Parameter tooltips now include default value
v4.0.0 (2021/11/12)
- Improvements when dragging edges between ports. EAGLE suggests compatible end ports and auto-completes edges
- Fixes for erratic node movement during dragging
- Major improvements to zoom and drag of graph display
- Improvements to node and edge selection
- Fixed issue where parents of duplicated nodes were not set correctly
- Graph check now produces warnings and errors, not just errors
- Now possible to select objects within a group
- Added Application Arguments to components
- Added default and precious attributes to parameters in components
- Search within palettes, and within component parameters
- Users can now load palettes from local disk even when 'palette editing' mode disabled
v3.2.0 (2021/10/29)
- Very important EAGLE feature
- New setting "Graph Zoom Divisor" to allow users to customise zoom speed for their environment
- Improvements to Explore Palettes, easier palette selection, better error handling
- Added zoom buttons to navbar
- All Nodes palette renamed to "Raw Components"
- Built-in Nodes palette now fetched from DALiuGE master palette
- Improved repository list layout
- Components can now collapse into icons in Graph Renderer, color coding
- Better component icons
- Created custom font to contain component icon SVGs
- Better component colors
- Better desciption and type information for ports
v3.1.0 (2021/10/11)
- Bootstrap 5.0 upgrade!
- Re-design settings modal. Items separated into groups.
- Added ska-telescope/ska-sdp-daliuge-graphs to list of default repositories
- Better handling of git repository errors. Empty repository, host unreachable etc.
- Minor improvements to documentation
- Improved 'add port' and 'add field' UI
- Automatically center graph when loaded
- Improvements to keyboard shortcut handling
- 'Display Node Keys' setting. False by default.
- Automatically reverse the direction of edges if draws from an input port to an output port
- Automcatically run checkGraph function on graph changes and display issues in navbar
- Improved rendering of Service components
- Additional default parameters for Plasma and PlasmaFlight components
- Revision of all edge colors
- Improved edge arrowheads
- Node and Edge inspectors merged
- 'Simplified translator options' setting. True by default.
- Selected component name text now bold
- Double-click components to expand/collapse
- Maintain embedded nodes when re-creating constructs from palettes
- Minor CSS improvements
- Minor graph rendering improvements
- Use node color for header in node inspector
- Alt-drag and Shift-drag of groups of components
- Navbar item and keyboard shortcut for 'Create construct from selection'
- Some code cleanup using the sonarqube static analyser
v3.0.7 (2021/08/13)
- Add 'test mode' to translation
- Added extra command-line-related parameters to the BashShellApp
- Content-based file loading
- Multiple selection of edges and nodes
- AppRef format output fixes
- Added Subgraph nodes
- Inserted graphs now placed within Subgraph nodes
- Fix for uploading local palettes
- Improvements to performance display
- Removed 'Save to PNG' button since data node icons were not captured
- Made edges much easier to select within graph display
- Fixed bug where graph display was clipped when zoomed out
- Added "Create Subgraph from Selection" menu item
- New faster interface for adding parameters and ports to the selected node
v3.0.6 (2021/07/15)
- Added "Explore Palettes" to top of left window
- Minor tooltips improvements
- Re-introduced code to check for duplicates when adding new nodes to palettes
- Components copied to palettes are now readwrite
- Added release notes to the 'About' dialog in the 'Help' menu
- Added 'precious' flag to Node data structure, plus UI
- New theme for documentation
- Replaced online help url with link to readthedocs
- Minor improvements to branch nodes
- Graph checker (in navbar) now finds a few more issues
- Drag-and-drop of nodes between palettes
- Fixed bug where orphaned edges would be left behind after nodes (and embedded apps) were deleted
- List of suggested ports and fields now contains the types of the suggestions
- New keyboard shortcut (i) and menu item to insert graph from local disk
- New icon next to filenames in repository browser to insert remote graphs
- Minor improvements to fields of boolean type
- New setting to enable performance display
v3.0.5 (2021/06/17)
- Minor improvements to tooltips
- New 'Add Palette from JSON' menu item
- Stop de-selecting node when user just drags the graph background
- Reversed order of palettes loaded by default, new palettes appear first
- Updates to JSON schema
- Singularity node category
- Improvements to unit tests to make them less brittle
- Minor improvements to rendering of node header at large scale
- Node inspector UI improvements
- Minor zooming improvements
- Tooltips for input field contents
- Catch two more classes of errors when interacting with GitHub repos, and give better error messages to users
- More keyboard shortcuts, and list of shortcuts available from Help menu
- Removed choice of output formats prior to translation
- Can now select components within palettes
- Minor improvements to rendering of comment nodes
- Duplicate/delete/add components from palettes
v3.0.4 (2021/05/31)
- New UI
- Make 'add port' and 'edit port' use the same modal dialog, following the example of parameters
- Fix some uncommon rendering errors that occurred during object copying
- Fixes suggested by eslint
- Modified validation of JSON to return errors, to discover how JSON differs from schema
- Updated JSON schema to allow parameter values to have multiple types
- Made 'All Nodes' palette readonly
- Removed palette editor mode
v3.0.3 (2021/05/17)
- Check value specified for field is valid for the specified type
- Fixed bug where URL-supplied graphs located in the root directory of a repository would not be loaded automatically
- Added integration test script to check EAGLE -> DALiuGE translator -> DALiuGE engine pipeline
- Added 'Create New Graph from JSON' menu item to 'New' menu, useful for testing
- Added setting to optionally open translation in the same tab, useful for testing
v3.0.2 (2021/04/27)
- Copy port attributes along with port name when adding an existing port to a node
- Improvements to NGAS component
- Improvements to Docker component
- Documentation updates for creation of Docker components
- Re-order node parameters(fields) to put DALiuGE-related fields last
- Make local copy of bootstrap CSS previously fetched from a CDN, so that EAGLE can be run offline
- Added tooltips to ports with type information
- Add edit button to ports
- Fixes for losing data from input fields
- New colors/dashes for edges, including streaming edges
- Fix for saving graph to palette, and creating nodes from saved palettes
- Fixed slight offset in position when drag-and-drop new node into graph
- Added 'Check Graph' button to navbar that checks for common issues
- Improved zoom (still janky)
- Re-enabled auto-parenting when dropping nodes inside others
- Use new edit parameter modal instead when adding new parameter
- 'Fetch from DockerHub' button on Docker components
v3.0.1 (2021/04/09)
- Collapsable sections in node inspector
- More complex unit testing scripts
- Documentation updates
- Template and Builtin Palette JSON updates
- Output JSON using correct types for fields
- Better default position of auto-generated mid-edge nodes
- Moved settings button in navbar to the help menu
- New builtin app (NGAS Archiving App)
- Removed UWSGI dependency
v3.0.0 (2021/04/01)
- Plasma node in template palette
- Graph loading fixes
- Improvements to modal dialog button focus
- Collapsable/Expandable sections in the node inspector UI
v2.8.11 (2021/03/19)
- Edge editing modal dialog
- Navbar menu item to add edges using modal
- New setting "Allow edge editing"
- Minor accessibility improvements
- Better word wrapping for comment nodes, description nodes and node headers
- Minimum node size during resizing
- Installation and docker development environment improvements
- Improvements to version script and display of version, especially during development
- Fixes to OJS-format output
- Can specify graph to load in URL (e.g. http://eagle.icrar.org/?service=GitHub&repository=ICRAR/daliuge&branch=master&path=daliuge-translator/test/dropmake/logical_graphs&filename=test_grpby_gather.json)
- New button in navbar to generate the url for the current graph
v2.8.10 (2021/02/18)
- Fixed bug where components in 'built-in' palette were specified with 'Unknown' embedded app types
- Documentation revisions
- Fix bug in loading files from within 2+ level folder hierarchies in gitlab repos
- schemaVersion attribute in FileInfo class
- export/import AppRef format graphs
- import V3 format graphs (unsupported)
- File loading errors regarding ports can not be recorded and presented to the user
- 'Create application for non-construct ports' setting added
- Fixed bug where users could not remove custom gitlab repositories
- Attempting to fetch non-existent gitlab repos or branches now displays useful error message
- string-type Enums in Eagle
v2.8.9 (2021/02/03)
- Added setting to disable JSON Validation
- Remove limit of two inputs on branch node
- Better positions of branch node input ports
- Fixed bug with rendering of output edges from collapsed MKN nodes
- Documentations updates
- Handle embedded applications with empty-string names
- Fixed bug where github token would not be saved to localStorage
v2.8.8 (2021/01/27)
- Flip ports works for comment nodes
- Rhombus-shaped branch nodes
- Added DataType to ports
- Limited number of ports based on node category
- Readonly attributes for palettes, nodes, fields
- Re-worked the allowComponentEditing and allowReadonlyParameterEditing settings
v2.8.7 (2021/01/12)
- De-select and close all nodes when the user clicks on an empty area of the background
- Moved github and gitlab access token buttons to settings
- Added 'copy to clipboard' button to the password-type settings
- Added collapse/expand nodes button and collapse/expand groups button to the navbar
- Added 'submit issue' menu item to help menu. Pre-populates github issue body with EAGLE version and commit hash
- Added builtin palette on startup
- Improved control points for bezier curve links
v2.8.6 (2020/12/15)
- Fix bug where palettes would be saved to an incorrect location in git
- Fix bug where adding a port to an embedded application would not update the UI.
- Allow use to save a single node, or a graph of nodes, into a palette
v2.8.5 (2020/12/11)
- Output ports on Service components
- Add 'event' attribute to ports
- Add EAGLE version and commit hash to files
- Loop node exit app ports fixed
- Random position for new nodes
- Show data nodes in palettes
- Default palette on startup
- Node inspector attributes cleanup
v2.8.4 (2020/12/07)
- Flip nodes button on nodes
- Fixed bug so that ports can be removed from embedded applications
- Allow users to choose "no app" when selecting an embedded application
v2.8.3 (2020/12/03)
- Display of exit application name and exit application ports
- Support for readonly and type attributes on fields. Readonly is enforced, type is not.
v2.8.2 (2020/11/26)
- tooltips for input/output/exit applications
- Fixed bug where 'enable palette mode' was connected to the 'translate with new categories' setting
- Fixed bug where parameters were not shown for Scatter/Gather/MKN nodes
v2.8.1 (2020/11/25)
- CategoryData structure in code
- GitHub action for testcafe testing
- Fixed bug which meant only input apps could be set, no output or exit apps
- Magnifying glass icon in inspector to select input/output/exit application nodes
v2.8.0 (2020/11/11)
- V3 JSON
- Node applications as nodes
- UI for parameter values
v2.7.2 (2020/11/09)
- no default event names, event attribute on ports
v2.7.1 (2020/11/06)
- reset default settings button
- fix suggested port names list
- added setting: enable palette mode
- added setting: allow component editing
v2.7.0 (2020/10/26)
- settings dialog
v2.6.3 (2020/10/22)
- fixed bug where legacy 'Component' categoryType was available to be selected by the user
v2.6.2 (2020/10/01)
- changed 'loop_aware' to be a string
v2.6.1 (2020/10/01)
- added 'loop_aware' attribute to edges
v2.6.0 (2020/09/24)
- multiple palettes
v2.5.0 (2020/09/09)
- start of versioning