mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-10 11:33:01 +00:00
move static files to share/jupyter/hub
avoids conflict with other jupyter projects
This commit is contained in:
113
share/jupyter/hub/static/js/admin.js
Normal file
113
share/jupyter/hub/static/js/admin.js
Normal file
@@ -0,0 +1,113 @@
|
||||
// Copyright (c) Jupyter Development Team.
|
||||
// Distributed under the terms of the Modified BSD License.
|
||||
|
||||
require(["jquery", "bootstrap", "moment", "jhapi"], function ($, bs, moment, JHAPI) {
|
||||
"use strict";
|
||||
|
||||
var base_url = window.jhdata.base_url;
|
||||
var api = new JHAPI(base_url);
|
||||
|
||||
var get_row = function (element) {
|
||||
while (!element.hasClass("user-row")) {
|
||||
element = element.parent();
|
||||
}
|
||||
return element;
|
||||
};
|
||||
|
||||
$(".time-col").map(function (i, el) {
|
||||
// convert ISO datestamps to nice momentjs ones
|
||||
el = $(el);
|
||||
el.text(moment(new Date(el.text())).fromNow());
|
||||
});
|
||||
|
||||
$(".stop-server").click(function () {
|
||||
var el = $(this);
|
||||
var row = get_row(el);
|
||||
var user = row.data('user');
|
||||
el.text("stopping...");
|
||||
api.stop_server(user, {
|
||||
success: function () {
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(".start-server").click(function () {
|
||||
var el = $(this);
|
||||
var row = get_row(el);
|
||||
var user = row.data('user');
|
||||
el.text("starting...");
|
||||
api.start_server(user, {
|
||||
success: function () {
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(".edit-user").click(function () {
|
||||
var el = $(this);
|
||||
var row = get_row(el);
|
||||
var user = row.data('user');
|
||||
var admin = row.data('admin');
|
||||
var dialog = $("#edit-user-dialog");
|
||||
dialog.data('user', user);
|
||||
dialog.find(".username-input").val(user);
|
||||
dialog.find(".admin-checkbox").attr("checked", admin==='True');
|
||||
dialog.modal();
|
||||
});
|
||||
|
||||
$("#edit-user-dialog").find(".save-button").click(function () {
|
||||
var dialog = $("#edit-user-dialog");
|
||||
var user = dialog.data('user');
|
||||
var name = dialog.find(".username-input").val();
|
||||
var admin = dialog.find(".admin-checkbox").prop("checked");
|
||||
api.edit_user(user, {
|
||||
admin: admin,
|
||||
name: name
|
||||
}, {
|
||||
success: function () {
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$(".delete-user").click(function () {
|
||||
var el = $(this);
|
||||
var row = get_row(el);
|
||||
var user = row.data('user');
|
||||
var dialog = $("#delete-user-dialog");
|
||||
dialog.find(".delete-username").text(user);
|
||||
dialog.modal();
|
||||
});
|
||||
|
||||
$("#delete-user-dialog").find(".delete-button").click(function () {
|
||||
var dialog = $("#delete-user-dialog");
|
||||
var username = dialog.find(".delete-username").text();
|
||||
console.log("deleting", username);
|
||||
api.delete_user(username, {
|
||||
success: function () {
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$("#add-user").click(function () {
|
||||
var dialog = $("#add-user-dialog");
|
||||
dialog.find(".username-input").val('');
|
||||
dialog.find(".admin-checkbox").prop("checked", false);
|
||||
dialog.modal();
|
||||
});
|
||||
|
||||
$("#add-user-dialog").find(".save-button").click(function () {
|
||||
var dialog = $("#add-user-dialog");
|
||||
var username = dialog.find(".username-input").val();
|
||||
var admin = dialog.find(".admin-checkbox").prop("checked");
|
||||
api.add_user(username, {admin: admin}, {
|
||||
success: function () {
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
Reference in New Issue
Block a user