mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-07 18:14:10 +00:00
move static resources to share/jupyterhub
from share/jupyter/hub to be consistent with use of etc/jupyterhub etc.
This commit is contained in:
18
MANIFEST.in
18
MANIFEST.in
@@ -18,15 +18,15 @@ graft docs
|
|||||||
prune docs/node_modules
|
prune docs/node_modules
|
||||||
|
|
||||||
# prune some large unused files from components
|
# prune some large unused files from components
|
||||||
prune share/jupyter/hub/static/components/bootstrap/dist/css
|
prune share/jupyterhub/static/components/bootstrap/dist/css
|
||||||
exclude share/jupyter/hub/static/components/bootstrap/dist/fonts/*.svg
|
exclude share/jupyterhub/static/components/bootstrap/dist/fonts/*.svg
|
||||||
prune share/jupyter/hub/static/components/font-awesome/css
|
prune share/jupyterhub/static/components/font-awesome/css
|
||||||
prune share/jupyter/hub/static/components/font-awesome/scss
|
prune share/jupyterhub/static/components/font-awesome/scss
|
||||||
exclude share/jupyter/hub/static/components/font-awesome/fonts/*.svg
|
exclude share/jupyterhub/static/components/font-awesome/fonts/*.svg
|
||||||
prune share/jupyter/hub/static/components/jquery/external
|
prune share/jupyterhub/static/components/jquery/external
|
||||||
prune share/jupyter/hub/static/components/jquery/src
|
prune share/jupyterhub/static/components/jquery/src
|
||||||
prune share/jupyter/hub/static/components/moment/lang
|
prune share/jupyterhub/static/components/moment/lang
|
||||||
prune share/jupyter/hub/static/components/moment/min
|
prune share/jupyterhub/static/components/moment/min
|
||||||
|
|
||||||
# Patterns to exclude from any directory
|
# Patterns to exclude from any directory
|
||||||
global-exclude *~
|
global-exclude *~
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
def get_data_files():
|
def get_data_files():
|
||||||
"""Walk up until we find share/jupyter/hub"""
|
"""Walk up until we find share/jupyterhub"""
|
||||||
import sys
|
import sys
|
||||||
from os.path import join, abspath, dirname, exists, split
|
from os.path import join, abspath, dirname, exists, split
|
||||||
path = abspath(dirname(__file__))
|
path = abspath(dirname(__file__))
|
||||||
@@ -12,10 +12,10 @@ def get_data_files():
|
|||||||
for path in starting_points:
|
for path in starting_points:
|
||||||
# walk up, looking for prefix/share/jupyter
|
# walk up, looking for prefix/share/jupyter
|
||||||
while path != '/':
|
while path != '/':
|
||||||
share_jupyter = join(path, 'share', 'jupyter', 'hub')
|
share_jupyterhub = join(path, 'share', 'jupyterhub')
|
||||||
static = join(share_jupyter, 'static')
|
static = join(share_jupyterhub, 'static')
|
||||||
if all(exists(join(static, f)) for f in ['components', 'css']):
|
if all(exists(join(static, f)) for f in ['components', 'css']):
|
||||||
return share_jupyter
|
return share_jupyterhub
|
||||||
path, _ = split(path)
|
path, _ = split(path)
|
||||||
# didn't find it, give up
|
# didn't find it, give up
|
||||||
return ''
|
return ''
|
||||||
|
@@ -263,7 +263,7 @@ class JupyterHub(Application):
|
|||||||
).tag(config=True)
|
).tag(config=True)
|
||||||
|
|
||||||
data_files_path = Unicode(DATA_FILES_PATH,
|
data_files_path = Unicode(DATA_FILES_PATH,
|
||||||
help="The location of jupyterhub data files (e.g. /usr/local/share/jupyter/hub)"
|
help="The location of jupyterhub data files (e.g. /usr/local/share/jupyterhub)"
|
||||||
).tag(config=True)
|
).tag(config=True)
|
||||||
|
|
||||||
template_paths = List(
|
template_paths = List(
|
||||||
|
4
setup.py
4
setup.py
@@ -38,7 +38,7 @@ from setuptools.command.bdist_egg import bdist_egg
|
|||||||
pjoin = os.path.join
|
pjoin = os.path.join
|
||||||
|
|
||||||
here = os.path.abspath(os.path.dirname(__file__))
|
here = os.path.abspath(os.path.dirname(__file__))
|
||||||
share_jupyter = pjoin(here, 'share', 'jupyter', 'hub')
|
share_jupyterhub = pjoin(here, 'share', 'jupyterhub')
|
||||||
static = pjoin(share_jupyter, 'static')
|
static = pjoin(share_jupyter, 'static')
|
||||||
|
|
||||||
is_repo = os.path.exists(pjoin(here, '.git'))
|
is_repo = os.path.exists(pjoin(here, '.git'))
|
||||||
@@ -53,7 +53,7 @@ def get_data_files():
|
|||||||
data_files = []
|
data_files = []
|
||||||
ntrim = len(here + os.path.sep)
|
ntrim = len(here + os.path.sep)
|
||||||
|
|
||||||
for (d, dirs, filenames) in os.walk(share_jupyter):
|
for (d, dirs, filenames) in os.walk(share_jupyterhub):
|
||||||
data_files.append((
|
data_files.append((
|
||||||
d[ntrim:],
|
d[ntrim:],
|
||||||
[ pjoin(d, f) for f in filenames ]
|
[ pjoin(d, f) for f in filenames ]
|
||||||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@@ -3,19 +3,19 @@
|
|||||||
|
|
||||||
require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, moment, JHAPI, utils) {
|
require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, moment, JHAPI, utils) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var base_url = window.jhdata.base_url;
|
var base_url = window.jhdata.base_url;
|
||||||
var prefix = window.jhdata.prefix;
|
var prefix = window.jhdata.prefix;
|
||||||
|
|
||||||
var api = new JHAPI(base_url);
|
var api = new JHAPI(base_url);
|
||||||
|
|
||||||
function get_row (element) {
|
function get_row (element) {
|
||||||
while (!element.hasClass("user-row")) {
|
while (!element.hasClass("user-row")) {
|
||||||
element = element.parent();
|
element = element.parent();
|
||||||
}
|
}
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
|
||||||
function resort (col, order) {
|
function resort (col, order) {
|
||||||
var query = window.location.search.slice(1).split('&');
|
var query = window.location.search.slice(1).split('&');
|
||||||
// if col already present in args, remove it
|
// if col already present in args, remove it
|
||||||
@@ -38,7 +38,7 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
// reload page with new order
|
// reload page with new order
|
||||||
window.location = window.location.pathname + '?' + query.join('&');
|
window.location = window.location.pathname + '?' + query.join('&');
|
||||||
}
|
}
|
||||||
|
|
||||||
$("th").map(function (i, th) {
|
$("th").map(function (i, th) {
|
||||||
th = $(th);
|
th = $(th);
|
||||||
var col = th.data('sort');
|
var col = th.data('sort');
|
||||||
@@ -52,13 +52,13 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".time-col").map(function (i, el) {
|
$(".time-col").map(function (i, el) {
|
||||||
// convert ISO datestamps to nice momentjs ones
|
// convert ISO datestamps to nice momentjs ones
|
||||||
el = $(el);
|
el = $(el);
|
||||||
el.text(moment(new Date(el.text())).fromNow());
|
el.text(moment(new Date(el.text())).fromNow());
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".stop-server").click(function () {
|
$(".stop-server").click(function () {
|
||||||
var el = $(this);
|
var el = $(this);
|
||||||
var row = get_row(el);
|
var row = get_row(el);
|
||||||
@@ -72,14 +72,14 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".access-server").click(function () {
|
$(".access-server").click(function () {
|
||||||
var el = $(this);
|
var el = $(this);
|
||||||
var row = get_row(el);
|
var row = get_row(el);
|
||||||
var user = row.data('user');
|
var user = row.data('user');
|
||||||
var w = window.open(utils.url_path_join(prefix, 'user', user) + '/');
|
var w = window.open(utils.url_path_join(prefix, 'user', user) + '/');
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".start-server").click(function () {
|
$(".start-server").click(function () {
|
||||||
var el = $(this);
|
var el = $(this);
|
||||||
var row = get_row(el);
|
var row = get_row(el);
|
||||||
@@ -93,7 +93,7 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".edit-user").click(function () {
|
$(".edit-user").click(function () {
|
||||||
var el = $(this);
|
var el = $(this);
|
||||||
var row = get_row(el);
|
var row = get_row(el);
|
||||||
@@ -105,7 +105,7 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
dialog.find(".admin-checkbox").attr("checked", admin==='True');
|
dialog.find(".admin-checkbox").attr("checked", admin==='True');
|
||||||
dialog.modal();
|
dialog.modal();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#edit-user-dialog").find(".save-button").click(function () {
|
$("#edit-user-dialog").find(".save-button").click(function () {
|
||||||
var dialog = $("#edit-user-dialog");
|
var dialog = $("#edit-user-dialog");
|
||||||
var user = dialog.data('user');
|
var user = dialog.data('user');
|
||||||
@@ -120,8 +120,8 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$(".delete-user").click(function () {
|
$(".delete-user").click(function () {
|
||||||
var el = $(this);
|
var el = $(this);
|
||||||
var row = get_row(el);
|
var row = get_row(el);
|
||||||
@@ -141,7 +141,7 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#add-users").click(function () {
|
$("#add-users").click(function () {
|
||||||
var dialog = $("#add-users-dialog");
|
var dialog = $("#add-users-dialog");
|
||||||
dialog.find(".username-input").val('');
|
dialog.find(".username-input").val('');
|
||||||
@@ -160,7 +160,7 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
usernames.push(username);
|
usernames.push(username);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
api.add_users(usernames, {admin: admin}, {
|
api.add_users(usernames, {admin: admin}, {
|
||||||
success: function () {
|
success: function () {
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
@@ -208,5 +208,5 @@ require(["jquery", "bootstrap", "moment", "jhapi", "utils"], function ($, bs, mo
|
|||||||
servers: servers,
|
servers: servers,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
@@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
require(["jquery", "jhapi"], function ($, JHAPI) {
|
require(["jquery", "jhapi"], function ($, JHAPI) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var base_url = window.jhdata.base_url;
|
var base_url = window.jhdata.base_url;
|
||||||
var user = window.jhdata.user;
|
var user = window.jhdata.user;
|
||||||
var api = new JHAPI(base_url);
|
var api = new JHAPI(base_url);
|
||||||
|
|
||||||
$("#stop").click(function () {
|
$("#stop").click(function () {
|
||||||
api.stop_server(user, {
|
api.stop_server(user, {
|
||||||
success: function () {
|
success: function () {
|
||||||
@@ -15,5 +15,5 @@ require(["jquery", "jhapi"], function ($, JHAPI) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
@@ -7,7 +7,7 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
var JHAPI = function (base_url) {
|
var JHAPI = function (base_url) {
|
||||||
this.base_url = base_url;
|
this.base_url = base_url;
|
||||||
};
|
};
|
||||||
|
|
||||||
var default_options = {
|
var default_options = {
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
@@ -17,21 +17,21 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
success: null,
|
success: null,
|
||||||
error: utils.ajax_error_dialog,
|
error: utils.ajax_error_dialog,
|
||||||
};
|
};
|
||||||
|
|
||||||
var update = function (d1, d2) {
|
var update = function (d1, d2) {
|
||||||
$.map(d2, function (i, key) {
|
$.map(d2, function (i, key) {
|
||||||
d1[key] = d2[key];
|
d1[key] = d2[key];
|
||||||
});
|
});
|
||||||
return d1;
|
return d1;
|
||||||
};
|
};
|
||||||
|
|
||||||
var ajax_defaults = function (options) {
|
var ajax_defaults = function (options) {
|
||||||
var d = {};
|
var d = {};
|
||||||
update(d, default_options);
|
update(d, default_options);
|
||||||
update(d, options);
|
update(d, options);
|
||||||
return d;
|
return d;
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.api_request = function (path, options) {
|
JHAPI.prototype.api_request = function (path, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options = ajax_defaults(options || {});
|
options = ajax_defaults(options || {});
|
||||||
@@ -42,7 +42,7 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
);
|
);
|
||||||
$.ajax(url, options);
|
$.ajax(url, options);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.start_server = function (user, options) {
|
JHAPI.prototype.start_server = function (user, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options = update(options, {type: 'POST', dataType: null});
|
options = update(options, {type: 'POST', dataType: null});
|
||||||
@@ -51,7 +51,7 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
options
|
options
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.stop_server = function (user, options) {
|
JHAPI.prototype.stop_server = function (user, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options = update(options, {type: 'DELETE', dataType: null});
|
options = update(options, {type: 'DELETE', dataType: null});
|
||||||
@@ -60,18 +60,18 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
options
|
options
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.list_users = function (options) {
|
JHAPI.prototype.list_users = function (options) {
|
||||||
this.api_request('users', options);
|
this.api_request('users', options);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.get_user = function (user, options) {
|
JHAPI.prototype.get_user = function (user, options) {
|
||||||
this.api_request(
|
this.api_request(
|
||||||
utils.url_path_join('users', user),
|
utils.url_path_join('users', user),
|
||||||
options
|
options
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.add_users = function (usernames, userinfo, options) {
|
JHAPI.prototype.add_users = function (usernames, userinfo, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
var data = update(userinfo, {usernames: usernames});
|
var data = update(userinfo, {usernames: usernames});
|
||||||
@@ -80,10 +80,10 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
dataType: null,
|
dataType: null,
|
||||||
data: JSON.stringify(data)
|
data: JSON.stringify(data)
|
||||||
});
|
});
|
||||||
|
|
||||||
this.api_request('users', options);
|
this.api_request('users', options);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.edit_user = function (user, userinfo, options) {
|
JHAPI.prototype.edit_user = function (user, userinfo, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options = update(options, {
|
options = update(options, {
|
||||||
@@ -91,26 +91,26 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
dataType: null,
|
dataType: null,
|
||||||
data: JSON.stringify(userinfo)
|
data: JSON.stringify(userinfo)
|
||||||
});
|
});
|
||||||
|
|
||||||
this.api_request(
|
this.api_request(
|
||||||
utils.url_path_join('users', user),
|
utils.url_path_join('users', user),
|
||||||
options
|
options
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.admin_access = function (user, options) {
|
JHAPI.prototype.admin_access = function (user, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options = update(options, {
|
options = update(options, {
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
dataType: null,
|
dataType: null,
|
||||||
});
|
});
|
||||||
|
|
||||||
this.api_request(
|
this.api_request(
|
||||||
utils.url_path_join('users', user, 'admin-access'),
|
utils.url_path_join('users', user, 'admin-access'),
|
||||||
options
|
options
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
JHAPI.prototype.delete_user = function (user, options) {
|
JHAPI.prototype.delete_user = function (user, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options = update(options, {type: 'DELETE', dataType: null});
|
options = update(options, {type: 'DELETE', dataType: null});
|
||||||
@@ -134,6 +134,6 @@ define(['jquery', 'utils'], function ($, utils) {
|
|||||||
}
|
}
|
||||||
this.api_request('shutdown', options);
|
this.api_request('shutdown', options);
|
||||||
};
|
};
|
||||||
|
|
||||||
return JHAPI;
|
return JHAPI;
|
||||||
});
|
});
|
@@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
require(["jquery", "jhapi"], function ($, JHAPI) {
|
require(["jquery", "jhapi"], function ($, JHAPI) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var base_url = window.jhdata.base_url;
|
var base_url = window.jhdata.base_url;
|
||||||
var user = window.jhdata.user;
|
var user = window.jhdata.user;
|
||||||
var api = new JHAPI(base_url);
|
var api = new JHAPI(base_url);
|
||||||
|
|
||||||
$("#request-token").click(function () {
|
$("#request-token").click(function () {
|
||||||
api.request_token({
|
api.request_token({
|
||||||
success: function (reply) {
|
success: function (reply) {
|
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
define(['jquery'], function($){
|
define(['jquery'], function($){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var url_path_join = function () {
|
var url_path_join = function () {
|
||||||
// join a sequence of url components with '/'
|
// join a sequence of url components with '/'
|
||||||
var url = '';
|
var url = '';
|
||||||
@@ -24,7 +24,7 @@ define(['jquery'], function($){
|
|||||||
url = url.replace(/\/\/+/, '/');
|
url = url.replace(/\/\/+/, '/');
|
||||||
return url;
|
return url;
|
||||||
};
|
};
|
||||||
|
|
||||||
var parse_url = function (url) {
|
var parse_url = function (url) {
|
||||||
// an `a` element with an href allows attr-access to the parsed segments of a URL
|
// an `a` element with an href allows attr-access to the parsed segments of a URL
|
||||||
// a = parse_url("http://localhost:8888/path/name#hash")
|
// a = parse_url("http://localhost:8888/path/name#hash")
|
||||||
@@ -38,13 +38,13 @@ define(['jquery'], function($){
|
|||||||
a.href = url;
|
a.href = url;
|
||||||
return a;
|
return a;
|
||||||
};
|
};
|
||||||
|
|
||||||
var encode_uri_components = function (uri) {
|
var encode_uri_components = function (uri) {
|
||||||
// encode just the components of a multi-segment uri,
|
// encode just the components of a multi-segment uri,
|
||||||
// leaving '/' separators
|
// leaving '/' separators
|
||||||
return uri.split('/').map(encodeURIComponent).join('/');
|
return uri.split('/').map(encodeURIComponent).join('/');
|
||||||
};
|
};
|
||||||
|
|
||||||
var url_join_encode = function () {
|
var url_join_encode = function () {
|
||||||
// join a sequence of url components with '/',
|
// join a sequence of url components with '/',
|
||||||
// encoding each component with encodeURIComponent
|
// encoding each component with encodeURIComponent
|
||||||
@@ -63,8 +63,8 @@ define(['jquery'], function($){
|
|||||||
// until we are building an actual request
|
// until we are building an actual request
|
||||||
return decodeURIComponent($('body').data(key));
|
return decodeURIComponent($('body').data(key));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// http://stackoverflow.com/questions/2400935/browser-detection-in-javascript
|
// http://stackoverflow.com/questions/2400935/browser-detection-in-javascript
|
||||||
var browser = (function() {
|
var browser = (function() {
|
||||||
if (typeof navigator === 'undefined') {
|
if (typeof navigator === 'undefined') {
|
||||||
@@ -101,7 +101,7 @@ define(['jquery'], function($){
|
|||||||
return jqXHR.statusText;
|
return jqXHR.statusText;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var log_ajax_error = function (jqXHR, status, error) {
|
var log_ajax_error = function (jqXHR, status, error) {
|
||||||
// log ajax failures with informative messages
|
// log ajax failures with informative messages
|
||||||
var msg = "API request failed (" + jqXHR.status + "): ";
|
var msg = "API request failed (" + jqXHR.status + "): ";
|
||||||
@@ -110,7 +110,7 @@ define(['jquery'], function($){
|
|||||||
console.log(msg);
|
console.log(msg);
|
||||||
return msg;
|
return msg;
|
||||||
};
|
};
|
||||||
|
|
||||||
var ajax_error_dialog = function (jqXHR, status, error) {
|
var ajax_error_dialog = function (jqXHR, status, error) {
|
||||||
console.log("ajax dialog", arguments);
|
console.log("ajax dialog", arguments);
|
||||||
var msg = log_ajax_error(jqXHR, status, error);
|
var msg = log_ajax_error(jqXHR, status, error);
|
||||||
@@ -132,6 +132,6 @@ define(['jquery'], function($){
|
|||||||
log_ajax_error : log_ajax_error,
|
log_ajax_error : log_ajax_error,
|
||||||
ajax_error_dialog : ajax_error_dialog,
|
ajax_error_dialog : ajax_error_dialog,
|
||||||
};
|
};
|
||||||
|
|
||||||
return utils;
|
return utils;
|
||||||
});
|
});
|
@@ -18,4 +18,3 @@ div.error > p {
|
|||||||
font-size: 200%;
|
font-size: 200%;
|
||||||
line-height: normal;
|
line-height: normal;
|
||||||
}
|
}
|
||||||
|
|
@@ -6,14 +6,14 @@
|
|||||||
.bg-warning();
|
.bg-warning();
|
||||||
padding:10px;
|
padding:10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.service-login {
|
.service-login {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
margin: auto auto 20% auto;
|
margin: auto auto 20% auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
width: 350px;
|
width: 350px;
|
||||||
font-size: large;
|
font-size: large;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-group, input[type=text], button {
|
.input-group, input[type=text], button {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
@@ -29,13 +29,13 @@
|
|||||||
input[type=submit] {
|
input[type=submit] {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-control:focus, input[type=submit]:focus {
|
.form-control:focus, input[type=submit]:focus {
|
||||||
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @jupyter-orange;
|
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @jupyter-orange;
|
||||||
border-color: @jupyter-orange;
|
border-color: @jupyter-orange;
|
||||||
outline-color: @jupyter-orange;
|
outline-color: @jupyter-orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login_error {
|
.login_error {
|
||||||
color: orangered;
|
color: orangered;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@@ -57,4 +57,3 @@
|
|||||||
border-radius: 0 0 @border-radius-large @border-radius-large;
|
border-radius: 0 0 @border-radius-large @border-radius-large;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@@ -12,4 +12,3 @@
|
|||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
@@ -3,4 +3,3 @@
|
|||||||
{% block error_detail %}
|
{% block error_detail %}
|
||||||
<p>Jupyter has lots of moons, but this is not one...</p>
|
<p>Jupyter has lots of moons, but this is not one...</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
@@ -6,4 +6,3 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
@@ -30,7 +30,7 @@
|
|||||||
<title>{% block title %}JupyterHub{% endblock %}</title>
|
<title>{% block title %}JupyterHub{% endblock %}</title>
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
{% block stylesheet %}
|
{% block stylesheet %}
|
||||||
<link rel="stylesheet" href="{{ static_url("css/style.min.css") }}" type="text/css"/>
|
<link rel="stylesheet" href="{{ static_url("css/style.min.css") }}" type="text/css"/>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.jhdata = {
|
window.jhdata = {
|
||||||
base_url: "{{base_url}}",
|
base_url: "{{base_url}}",
|
@@ -21,4 +21,3 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Reference in New Issue
Block a user