[pve-devel] applied: [PATCH v2 docs 1/2] apiviewer: add api endpoint deeplink ability

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Dec 11 16:07:14 CET 2019


On 12/11/19 12:58 PM, Tim Marx wrote:
> use #/<endpoint> to deeplink to a specific endpoint
> 
> Signed-off-by: Tim Marx <t.marx at proxmox.com>
> ---
> changes v2:
> * update hash part on treenode selection
> * deepLink should work on subsequent url changes
> 

applied, thanks! Did small followup, see inline:

>  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);

added a .replace(/\/\s*$/, '') to trim trailing slashes, to make paths
like /access/ work, my firefox autocompletes to trailing slash, so I run
into this fast.

> +	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



More information about the pve-devel mailing list