in assets/scripts/steps.js [1:163]
(function ($) {
// Declare options
var COPY_TIME = 2000;
var selectors = {
container: '.js-steps',
header: '.js-stepsheader',
copy: '.js-copy',
loading: '.js-loading',
quote: 'blockquote p',
step: 'h2',
};
var classes = {
title: 'sql-page_steps-title',
block: 'sql-page_steps-block',
hidden: 'is-hidden',
copy: 'js-copy sql-page_steps-copy',
intro: 'sql-page_steps-intro',
sticky: 'is-sticky'
};
var texts = {
copy: '<i class="fa fa-clipboard" aria-hidden="true"></i> Copy',
copied: 'Copied!',
star: '<i class="sql-page_steps-star fa fa-star" aria-hidden="true"></i>'
};
// Methods that we need
var initContainer = function () {
var $container = $(selectors.container);
if ($container.length < 1) {
return;
}
var $steps = $container.children(selectors.step);
var $intro = $container.children(selectors.intro).first().addClass(classes.intro);
var $newContainer = $('<div/>');
$newContainer.html($intro);
$steps.each(function (i, el) {
var $el = $(el);
$el.addClass(classes.title);
var $step = $('<div/>');
$step.addClass(classes.block);
$step.append($el.nextUntil(selectors.step));
$step.find(selectors.quote).prepend(texts.star);
$step.prepend($el);
$newContainer.append($step);
});
$container.append($newContainer);
return $container;
};
var initSticky = function () {
var $window = $(window);
var $header = $(selectors.header);
if ($header.length < 1) {
return;
}
var position = $header.position();
$window.on('scroll', function () {
var top = $(window).scrollTop();
if (top > position.top) {
$header.addClass(classes.sticky);
return;
}
$header.removeClass(classes.sticky);
});
};
var initCopy = function () {
var options = {
target: function (trigger) {
return trigger.previousElementSibling;
}
};
var copy = new Clipboard(selectors.copy, options);
copy.on('success', function (e) {
e.clearSelection();
$el = $(e.trigger);
$el.html(texts.copied);
setTimeout(function () {
$el.html(texts.copy);
}, COPY_TIME);
});
};
var generateCopyButton = function () {
var $btn = $('<div/>');
$btn.html(texts.copy);
$btn.addClass(classes.copy);
return $btn;
};
/*
$(document).ready(function() {
console.log(window.location.href);
console.log("test");
var path = window.location.href;
var windows = "windows";
var isWindows;
isWindows = path.includes(windows);
});
*/
var checkContent = function ($container) {
// Terminal
console.log(window.location.href);
console.log("test");
var path = window.location.href;
var windows = "windows";
var isWindows;
isWindows = path.indexOf(windows);
if (isWindows >=0){
$container
.find('.language-terminal.highlighter-rouge pre')
.addClass('command-line')
.attr('data-prompt', '>');
}
else{
$container
.find('.language-terminal.highlighter-rouge pre')
.addClass('command-line')
.attr('data-prompt', '$');
}
// Clipboard
$container
.find('.highlighter-rouge pre')
.append(generateCopyButton());
return $container;
};
// Init Sticky
initSticky();
// Init the info of the container
var $container = initContainer();
if ($container) {
var $loading = $(selectors.loading);
// Check for modifications
$container = checkContent($container);
// Initialize copy button
initCopy();
// Show the content
var TIME = 250;
$loading.fadeOut(TIME);
setTimeout(function() {
$container.fadeIn(TIME * .5);
}, TIME * .9);
}
})(jQuery);