Chrome extension to help with Einstein Analytics v2
EADashboardHelper Extension
This is for use with Einstein Analytics dashboards - more specifically, on the JSON editor.
It enables a page action when editing JSON on an Einstein Analytics dashboard, and when activated, will show a menu of available steps to modify, which will bring up a code editor. It will only show custom SAQL queries and is ideal when modifying SAQL with bindings, since the standard editor won't allow direct editing.
Note: this is WIP, and feedback is always appreciated.
Updates 8/12/2022
- Updated to Manifest v3 (for future Chrome Extension requirements)
- Tweaked recipe/ dataflow execution log downloads
Updates 11/8/2021
- Added option whether or not to backup Replicated Datasets on full backup
- Tweaked SAQL editor gui for dropdown theme and font size
- Removed JSONBin backup for dataflow layouts
Updates 14/5/2021
- Fixed to work with new changes coming in Summer 21? (run in sandbox)
- As a consequence, the SAQL editor now utilises a 'contained' editor, which you can change between light/ dark theme and change the font size.
- Backups of dataset XMD's also include an 'easy' version, which has fields tweaked from system fields to allow for easy upload/ rename (compliments of Pete Lyons)
Updates 16/3/2021
- slight change to XMD backup for datasets - now includes both MAIN and user, and strip fields so it can be used directly from backup
Updates 9/3/2021
- Complete overhaul of popup - conversion to full web pages
- backup and all other API related calls utilising new format
Updates 21/9/2020
- Initial work to run in sandbox environments (metadata export/ backup not working)
- Dataflow layout enhancements - auto arrange, straighten, auto load/ save attempts
Updates 2/6/2020
- Small fix to ensure running in sandbox environments
- removed unnecessary permissions in manifest
Updates 28/1/2020
- BUGFIX ensured that the static editor functionality is all there.
- This release should have most of functionality running with future release - have had to put in support to run with a new editor (SAQL). Note - drag drop not working on SAQL editor.
- Added job history node download for detailed dataflow run analysis.
Updates 6/11/2019
- BUGFIX put in fix to stop split error message on measure filter in lens
Updates 7/10/2019
- Initial work to ensure it works with future releases of Einstein/ Salesforce
- Updated both saql editing and dataflow layouts to handle multiple containers
- Added comments (by right mouse clicking) for dataflow layouts
- Added description text box for saql editing (appears on side tree)
Updates 24/09/2019
- Added dataflow layout handling
Updates 16/09/2019
- Added more functionality to the popup page around Metadata/ Discovery
Updates 20/8/2019
- tweaked backup to allow more functionality
Updates 14/8/2019
- added popup functionality to allow backup of recently modified objects in EA
- added shortcut (default Ctrl-Shft-S) to toggle sidebar - can be modified in extensions/ keyboard shortcuts
- added 'draggable' menu to show datasets used in current SAQL query - and SAQL functions as well (ie, can drag/ drop measures/ dims into editor)
- tweaked the static editor to allow for more room (use resizable text area)
- automatically append new lines after ';' if none present (displays nicer)
Updates 30/7/2019
- tweaked the static flex editor to provide more control over the data type (classify as string, number or object/array by toggling button)
- made side menu size adjustable by dragging bottom corner square
Updates 15/7/2019
- can show hide side by clicking on the icon
- also allows you to modify pigql style setup
- now you can right click on components to rename (including attached widgets)
- when clicking/ editing entities, it also jumps to the location in the json
- new static step editor
Read more
It enables a page action when editing JSON on an Einstein Analytics dashboard, and when activated, will show a menu of available steps to modify, which will bring up a code editor. It will only show custom SAQL queries and is ideal when modifying SAQL with bindings, since the standard editor won't allow direct editing.
Note: this is WIP, and feedback is always appreciated.
Updates 8/12/2022
- Updated to Manifest v3 (for future Chrome Extension requirements)
- Tweaked recipe/ dataflow execution log downloads
Updates 11/8/2021
- Added option whether or not to backup Replicated Datasets on full backup
- Tweaked SAQL editor gui for dropdown theme and font size
- Removed JSONBin backup for dataflow layouts
Updates 14/5/2021
- Fixed to work with new changes coming in Summer 21? (run in sandbox)
- As a consequence, the SAQL editor now utilises a 'contained' editor, which you can change between light/ dark theme and change the font size.
- Backups of dataset XMD's also include an 'easy' version, which has fields tweaked from system fields to allow for easy upload/ rename (compliments of Pete Lyons)
Updates 16/3/2021
- slight change to XMD backup for datasets - now includes both MAIN and user, and strip fields so it can be used directly from backup
Updates 9/3/2021
- Complete overhaul of popup - conversion to full web pages
- backup and all other API related calls utilising new format
Updates 21/9/2020
- Initial work to run in sandbox environments (metadata export/ backup not working)
- Dataflow layout enhancements - auto arrange, straighten, auto load/ save attempts
Updates 2/6/2020
- Small fix to ensure running in sandbox environments
- removed unnecessary permissions in manifest
Updates 28/1/2020
- BUGFIX ensured that the static editor functionality is all there.
- This release should have most of functionality running with future release - have had to put in support to run with a new editor (SAQL). Note - drag drop not working on SAQL editor.
- Added job history node download for detailed dataflow run analysis.
Updates 6/11/2019
- BUGFIX put in fix to stop split error message on measure filter in lens
Updates 7/10/2019
- Initial work to ensure it works with future releases of Einstein/ Salesforce
- Updated both saql editing and dataflow layouts to handle multiple containers
- Added comments (by right mouse clicking) for dataflow layouts
- Added description text box for saql editing (appears on side tree)
Updates 24/09/2019
- Added dataflow layout handling
Updates 16/09/2019
- Added more functionality to the popup page around Metadata/ Discovery
Updates 20/8/2019
- tweaked backup to allow more functionality
Updates 14/8/2019
- added popup functionality to allow backup of recently modified objects in EA
- added shortcut (default Ctrl-Shft-S) to toggle sidebar - can be modified in extensions/ keyboard shortcuts
- added 'draggable' menu to show datasets used in current SAQL query - and SAQL functions as well (ie, can drag/ drop measures/ dims into editor)
- tweaked the static editor to allow for more room (use resizable text area)
- automatically append new lines after ';' if none present (displays nicer)
Updates 30/7/2019
- tweaked the static flex editor to provide more control over the data type (classify as string, number or object/array by toggling button)
- made side menu size adjustable by dragging bottom corner square
Updates 15/7/2019
- can show hide side by clicking on the icon
- also allows you to modify pigql style setup
- now you can right click on components to rename (including attached widgets)
- when clicking/ editing entities, it also jumps to the location in the json
- new static step editor
Source Manifest.json
{"update_url": "https://clients2.google.com/service/update2/crx", "name": "EADashboardHelper", "description": "Chrome extension to help with Einstein Analytics v2", "version": "2.2.0", "manifest_version": 3, "icons": { "48": "icons/[email protected]", "128": "icons/[email protected]" }, "action": { "default_title": "EADashboardHelper", "_default_popup": "popup/popup.html" }, "background": { "service_worker": "background.js" }, "content_security_policy": { "extension_pages": "script-src 'self'; object-src 'self'" }, "content_scripts": [ { "js": [ "insertions/pageContent.js" ], "matches": [ "https://*.salesforce.com/analytics/wave/*", "https://*.lightning.force.com/wave/*", "https://*.lightning.force.com/analytics/*" ] } ], "commands": { "ShowSAQLSidebar": { "suggested_key": { "default": "Ctrl+Shift+S", "mac": "Command+Shift+S" }, "description": "Toggle SAQL Sidebar" }, "SaveDataflowLayout": { "suggested_key": { "default": "Ctrl+Shift+K", "mac": "Command+Shift+K" }, "description": "Save the Dataflow Layout to local storage" }, "LoadDataflowLayout": { "suggested_key": { "default": "Ctrl+Shift+L", "mac": "Command+Shift+L" }, "description": "Load the Dataflow Layout from local storage" }, "AutoLoadDataflowLayout": { "suggested_key": { "default": "Ctrl+Shift+A", "mac": "Command+Shift+A" }, "description": "Applies Dagre layout algorithm on the dataflow" } }, "permissions": [ "tabs", "webRequest", "storage" ], "host_permissions": [ "*://*.salesforce.com/", "*://*.lightning.force.com/" ], "web_accessible_resources": [ { "resources": [ "insertions/pageScript.js", "insertions/pageScript_df.js", "insertions/pageContent.js", "insertions/functionDefs.js", "insertions/dist/jsTree/jstree.min.js", "insertions/dist/jsTree/themes/default/style.min.css", "insertions/dist/jsTree/themes/default/32px.png", "insertions/dist/jsTree/themes/default/40px.png", "insertions/dist/jsTree/themes/default/throbber.gif", "insertions/dist/jsTree/themes/default/table.png", "insertions/dist/jsTree/themes/default/chart.png", "insertions/dist/jsTree/themes/default/dateselector.png", "insertions/dist/jsTree/themes/default/globalfilters.png", "insertions/dist/jsTree/themes/default/image.png", "insertions/dist/jsTree/themes/default/listselector.png", "insertions/dist/jsTree/themes/default/number.png", "insertions/dist/jsTree/themes/default/text.png", "insertions/dist/jsTree/themes/default/query.png", "insertions/dist/jsTree/themes/default/link.png", "insertions/dist/jsTree/themes/default/refresh.png", "insertions/dist/jsTree/themes/default/pillbox.png", "insertions/dist/jsTree/themes/default/delete.png", "insertions/dist/jsTree/themes/default/dimension.png", "insertions/dist/jsTree/themes/default/function.png", "insertions/dist/jsTree/themes/default/dataset.png", "insertions/dist/jsTree/themes/default/reorder.png", "insertions/dist/jsTree/themes/default/redArrow.png", "insertions/dist/jsTree/themes/default/container.png", "insertions/dist/jsTree/themes/default/navigation.png", "insertions/functionDefs.js", "insertions/dist/selection.min.js", "insertions/dist/selection.css", "insertions/dist/jquery-sortable-min.js", "insertions/dist/clipboard.min.js", "insertions/dist/dagre.min.js", "insertions/dist/ace-editor/ace.js", "insertions/dist/ace-editor/ext-beautify.js", "insertions/dist/ace-editor/ext-code_lens.js", "insertions/dist/ace-editor/ext-elastic_tabstops_lite.js", "insertions/dist/ace-editor/ext-emmet.js", "insertions/dist/ace-editor/ext-error_marker.js", "insertions/dist/ace-editor/ext-keybinding_menu.js", "insertions/dist/ace-editor/ext-language_tools.js", "insertions/dist/ace-editor/ext-linking.js", "insertions/dist/ace-editor/ext-modelist.js", "insertions/dist/ace-editor/ext-options.js", "insertions/dist/ace-editor/ext-prompt.js", "insertions/dist/ace-editor/ext-rtl.js", "insertions/dist/ace-editor/ext-searchbox.js", "insertions/dist/ace-editor/ext-settings_menu.js", "insertions/dist/ace-editor/ext-spellcheck.js", "insertions/dist/ace-editor/ext-split.js", "insertions/dist/ace-editor/ext-static_highlight.js", "insertions/dist/ace-editor/ext-statusbar.js", "insertions/dist/ace-editor/ext-textarea.js", "insertions/dist/ace-editor/ext-themelist.js", "insertions/dist/ace-editor/ext-whitespace.js", "insertions/dist/ace-editor/keybinding-emacs.js", "insertions/dist/ace-editor/keybinding-sublime.js", "insertions/dist/ace-editor/keybinding-vim.js", "insertions/dist/ace-editor/keybinding-vscode.js", "insertions/dist/ace-editor/mode-sql.js", "insertions/dist/ace-editor/snippets/sql.js", "insertions/dist/ace-editor/snippets/sqlserver.js", "insertions/dist/ace-editor/snippets/text.js", "insertions/dist/ace-editor/snippets/textile.js", "insertions/dist/ace-editor/theme-monokai.js", "insertions/dist/ace-editor/worker-base.js" ], "matches": [ "https://*.salesforce.com/*", "https://*.lightning.force.com/*" ] } ]}
Read more