From 33cb62c2ee5b78d38f97dfc6077e65d238e2b93f Mon Sep 17 00:00:00 2001 From: Min RK Date: Mon, 16 Apr 2018 11:07:40 +0200 Subject: [PATCH] support revoking tokens from token page --- share/jupyterhub/static/js/jhapi.js | 4 ++-- share/jupyterhub/static/js/token.js | 17 +++++++++++++++++ share/jupyterhub/templates/token.html | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/share/jupyterhub/static/js/jhapi.js b/share/jupyterhub/static/js/jhapi.js index 43bd03a3..6ea2fe89 100644 --- a/share/jupyterhub/static/js/jhapi.js +++ b/share/jupyterhub/static/js/jhapi.js @@ -132,9 +132,9 @@ define(['jquery', 'utils'], function ($, utils) { ); }; - JHAPI.prototype.delete_token = function (user, token_id, options) { + JHAPI.prototype.revoke_token = function (user, token_id, options) { options = options || {}; - options = update(options, {type: 'POST'}); + options = update(options, {type: 'DELETE'}); this.api_request( utils.url_path_join('users', user, 'tokens', token_id), options diff --git a/share/jupyterhub/static/js/token.js b/share/jupyterhub/static/js/token.js index ad13ba1b..a5fcda31 100644 --- a/share/jupyterhub/static/js/token.js +++ b/share/jupyterhub/static/js/token.js @@ -32,5 +32,22 @@ require(["jquery", "jhapi", "moment"], function($, JHAPI, moment) { ); return false; }); + + function get_token_row(element) { + while (!element.hasClass("token-row")) { + element = element.parent(); + } + return element; + } + + $(".revoke-token-btn").click(function() { + var el = $(this); + var row = get_token_row(el); + el.attr("disabled", true); + api.revoke_token(user, row.data('token-id'), { + success: function(reply) { + row.remove(); + }, }); + }); }); diff --git a/share/jupyterhub/templates/token.html b/share/jupyterhub/templates/token.html index 395ee301..8eb8d6d1 100644 --- a/share/jupyterhub/templates/token.html +++ b/share/jupyterhub/templates/token.html @@ -71,7 +71,7 @@ {{ token.created.isoformat() + 'Z' }} - revoke + revoke {% endblock token_row %}