mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 10:52:30 +00:00
174 lines
6.2 KiB
JavaScript
174 lines
6.2 KiB
JavaScript
function onResize() {
|
|
var window_height = $(window).height();
|
|
var window_width = $(window).width();
|
|
var is_wide = window_width >= 768;
|
|
var docs_top_nav = $('#top-nav.bg-dark-alt');
|
|
|
|
$('body').attr('data-offset', window_height.toString());
|
|
var sidebar = $('#sidebar');
|
|
var languages = $('#languages-dropdown')
|
|
var edit = $('#edit-link');
|
|
var single_page_switch = $('#single-page-switch');
|
|
if ((sidebar.width() - single_page_switch.width() - sidebar.find('.dropdown-toggle').width()) >= 36) {
|
|
single_page_switch.addClass('float-right');
|
|
} else {
|
|
single_page_switch.removeClass('float-right');
|
|
}
|
|
if (is_wide) {
|
|
sidebar.removeClass('collapse');
|
|
edit.detach().appendTo($('#edit-wrapper'));
|
|
languages.detach().appendTo($('#languages-wrapper'));
|
|
} else {
|
|
sidebar.addClass('collapse');
|
|
edit.detach().insertBefore(single_page_switch);
|
|
edit.addClass('float-right');
|
|
languages.detach().insertBefore(edit);
|
|
languages.addClass('float-right');
|
|
single_page_switch.removeClass('float-right');
|
|
}
|
|
if (window_height < 800 && is_wide) {
|
|
docs_top_nav.removeClass('sticky-top');
|
|
$('#sidebar, #toc.toc-right').css({
|
|
'height': window_height,
|
|
'position': 'sticky',
|
|
'top': 0
|
|
});
|
|
} else {
|
|
var top_nav_height = docs_top_nav.height();
|
|
docs_top_nav.addClass('sticky-top');
|
|
$('#sidebar, #toc.toc-right').css({
|
|
'height': (window_height - top_nav_height) + 'px',
|
|
'position': 'fixed',
|
|
'top': top_nav_height + 16
|
|
});
|
|
}
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
onResize();
|
|
$('#sidebar .nav-link.active').parents('.collapse').each(function() {
|
|
var current = $(this);
|
|
if (current.attr('id') !== 'sidebar') {
|
|
current.collapse('show');
|
|
}
|
|
});
|
|
$(window).resize(onResize);
|
|
$(window).on('activate.bs.scrollspy', function () {
|
|
var maxActiveOffset = 0;
|
|
$('#toc .nav-link.active').each(function() {
|
|
if (maxActiveOffset < $(this).offset().top) {
|
|
maxActiveOffset = $(this).offset().top;
|
|
}
|
|
});
|
|
$('#toc .nav-link').each(function() {
|
|
if (maxActiveOffset >= $(this).offset().top) {
|
|
$(this).addClass('toc-muted');
|
|
} else {
|
|
$(this).removeClass('toc-muted');
|
|
}
|
|
});
|
|
});
|
|
$('#sidebar').on('shown.bs.collapse', function () {
|
|
onResize();
|
|
$('body').on('touchmove', function (e) {
|
|
e.preventDefault();
|
|
});
|
|
});
|
|
$('#sidebar').on('hidden.bs.collapse', function () {
|
|
$('body').on('touchmove', function () {});
|
|
});
|
|
|
|
var headers = $('#content h1, #content h2, #content h3, #content h4, #content h5, #content h6');
|
|
headers.mouseenter(function() {
|
|
$(this).find('.headerlink').html('¶');
|
|
});
|
|
headers.mouseleave(function() {
|
|
$(this).find('.headerlink').html(' ');
|
|
});
|
|
|
|
if ($('#docsearch-input').length) {
|
|
docsearch({
|
|
apiKey: 'e239649803024433599de47a53b2d416',
|
|
indexName: 'yandex_clickhouse',
|
|
inputSelector: '#docsearch-input',
|
|
algoliaOptions: {
|
|
advancedSyntax: true,
|
|
clickAnalytics: true,
|
|
hitsPerPage: 25,
|
|
'facetFilters': [
|
|
'lang:' + $('html').attr('lang'),
|
|
'version:' + $('html').attr('data-version')
|
|
]
|
|
},
|
|
debug: false
|
|
});
|
|
}
|
|
|
|
var rating_stars = $('#rating-stars');
|
|
if (rating_stars.length) {
|
|
var key = '';
|
|
var stars_text = rating_stars.text().replace(/^\s+|\s+$/g, '');
|
|
var url_match = window.location.pathname.match(/^\/docs(?:\/v[0-9]+\.[0-9]+)?(?:\/[a-z]{2})(.*)/);
|
|
if (url_match && url_match.length > 1) {
|
|
key = url_match[1];
|
|
if (key.length > 2) {
|
|
key = key.replace(/^\/|\/$/g, '');
|
|
}
|
|
key = 'rating_' + key;
|
|
var local_stars = localStorage.getItem(key);
|
|
if (local_stars) {
|
|
stars_text = local_stars;
|
|
rating_stars.addClass('text-orange');
|
|
}
|
|
}
|
|
var titles = JSON.parse(rating_stars.attr('data-titles').replace(/'/g, '"'));
|
|
var documentation = rating_stars.attr('data-documentation');
|
|
var replacement = '';
|
|
for (var i = 0; i < 5; i++) {
|
|
var star = stars_text.charAt(i);
|
|
replacement += '<a href="#" title="' + titles[i] + ' ' + documentation +
|
|
'" data-toggle="tooltip" data-placement="bottom" role="rating" ' +
|
|
'class="rating-star text-reset text-decoration-none">' + star + '</a>';
|
|
}
|
|
rating_stars.html(replacement);
|
|
$('[data-toggle="tooltip"]').tooltip({
|
|
trigger: 'hover'
|
|
});
|
|
var rating_star_item = $('.rating-star');
|
|
rating_star_item.hover(function() {
|
|
var current = $(this);
|
|
current.text('★');
|
|
current.prevAll().text('★');
|
|
current.nextAll().text('☆');
|
|
});
|
|
rating_stars.mouseleave(function() {
|
|
for (var i = 0; i < 5; i++) {
|
|
rating_stars.children().eq(i).text(stars_text[i]);
|
|
}
|
|
});
|
|
rating_star_item.click(function(e) {
|
|
e.preventDefault();
|
|
rating_stars.addClass('text-orange');
|
|
stars_text = rating_stars.text();
|
|
localStorage.setItem(key, stars_text);
|
|
$.ajax({
|
|
url: window.location.pathname + 'rate/',
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: JSON.stringify({rating: $(this).prevAll().length + 1}),
|
|
success: function () {
|
|
try {
|
|
window.yaCounter18343495.reachGoal('docs_feedback');
|
|
} catch (e) {
|
|
Sentry.captureException(e);
|
|
}
|
|
},
|
|
error: function () {
|
|
rating_stars.removeClass('text-orange');
|
|
localStorage.removeItem(key);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|