use #/<endpoint> to deeplink to a specific endpoint

Signed-off-by: Tim Marx <t.m...@proxmox.com>
---
changes v2:
* update hash part on treenode selection
* deepLink should work on subsequent url changes

 api-viewer/PVEAPI.js | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/api-viewer/PVEAPI.js b/api-viewer/PVEAPI.js
index d0da407..dd36fff 100644
--- a/api-viewer/PVEAPI.js
+++ b/api-viewer/PVEAPI.js
@@ -368,6 +368,7 @@ Ext.onReady(function() {
                    return;
                var rec = selections[0];
                render_docu(rec.data);
+               location.hash = '#' + rec.data.path;
            }
        }
     });
@@ -389,4 +390,18 @@ Ext.onReady(function() {
        ]
     });

+    var deepLink = function() {
+       var path = window.location.hash.substring(1);
+       var endpoint = store.findNode('path', path);
+
+       if (endpoint) {
+           tree.getSelectionModel().select(endpoint);
+           tree.expandPath(endpoint.getPath());
+           render_docu(endpoint.data);
+       }
+    }
+    window.onhashchange = deepLink;
+
+    deepLink();
+
 });
--
2.20.1

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to