summaryrefslogtreecommitdiffstats
path: root/theme/javascript/toolbar.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-02-17 14:07:15 +0100
committerSamy Pessé <samypesse@gmail.com>2016-02-17 14:07:15 +0100
commit6ee9a3a64c76109719227a056ae2b29cb447cd76 (patch)
tree4cc2f8202a83369501a74625ee953b10b286de5b /theme/javascript/toolbar.js
parentc0196c97a50786cd28c9b72197b39fefb47be333 (diff)
downloadgitbook-6ee9a3a64c76109719227a056ae2b29cb447cd76.zip
gitbook-6ee9a3a64c76109719227a056ae2b29cb447cd76.tar.gz
gitbook-6ee9a3a64c76109719227a056ae2b29cb447cd76.tar.bz2
Remove old theme
Diffstat (limited to 'theme/javascript/toolbar.js')
-rw-r--r--theme/javascript/toolbar.js181
1 files changed, 0 insertions, 181 deletions
diff --git a/theme/javascript/toolbar.js b/theme/javascript/toolbar.js
deleted file mode 100644
index 647578f..0000000
--- a/theme/javascript/toolbar.js
+++ /dev/null
@@ -1,181 +0,0 @@
-var $ = require('jquery');
-var _ = require('lodash');
-
-var events = require('./events');
-
-// List of created buttons
-var buttons = [];
-
-// Insert a jquery element at a specific position
-function insertAt(parent, selector, index, element) {
- var lastIndex = parent.children(selector).size();
- if (index < 0) {
- index = Math.max(0, lastIndex + 1 + index);
- }
- parent.append(element);
-
- if (index < lastIndex) {
- parent.children(selector).eq(index).before(parent.children(selector).last());
- }
-}
-
-// Default click handler
-function defaultOnClick(e) {
- e.preventDefault();
-}
-
-// Create a dropdown menu
-function createDropdownMenu(dropdown) {
- var $menu = $('<div>', {
- 'class': 'dropdown-menu',
- 'html': '<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>'
- });
-
- if (_.isString(dropdown)) {
- $menu.append(dropdown);
- } else {
- var groups = _.map(dropdown, function(group) {
- if (_.isArray(group)) return group;
- else return [group];
- });
-
- // Create buttons groups
- _.each(groups, function(group) {
- var $group = $('<div>', {
- 'class': 'buttons'
- });
- var sizeClass = 'size-'+group.length;
-
- // Append buttons
- _.each(group, function(btn) {
- btn = _.defaults(btn || {}, {
- text: '',
- className: '',
- onClick: defaultOnClick
- });
-
- var $btn = $('<button>', {
- 'class': 'button '+sizeClass+' '+btn.className,
- 'text': btn.text
- });
- $btn.click(btn.onClick);
-
- $group.append($btn);
- });
-
-
- $menu.append($group);
- });
-
- }
-
-
- return $menu;
-}
-
-// Create a new button in the toolbar
-function createButton(opts) {
- opts = _.defaults(opts || {}, {
- // Aria label for the button
- label: '',
-
- // Icon to show
- icon: '',
-
- // Inner text
- text: '',
-
- // Right or left position
- position: 'left',
-
- // Other class name to add to the button
- className: '',
-
- // Triggered when user click on the button
- onClick: defaultOnClick,
-
- // Button is a dropdown
- dropdown: null,
-
- // Position in the toolbar
- index: null
- });
-
- buttons.push(opts);
- updateButton(opts);
-}
-
-// Update a button
-function updateButton(opts) {
- var $result;
- var $toolbar = $('.book-header');
- var $title = $toolbar.find('h1');
-
- // Build class name
- var positionClass = 'pull-'+opts.position;
-
- // Create button
- var $btn = $('<a>', {
- 'class': 'btn',
- 'text': opts.text? ' ' + opts.text : '',
- 'aria-label': opts.label,
- 'href': '#'
- });
-
- // Bind click
- $btn.click(opts.onClick);
-
- // Prepend icon
- if (opts.icon) {
- $('<i>', {
- 'class': opts.icon
- }).prependTo($btn);
- }
-
- // Prepare dropdown
- if (opts.dropdown) {
- var $container = $('<div>', {
- 'class': 'dropdown '+positionClass+' '+opts.className
- });
-
- // Add button to container
- $btn.addClass('toggle-dropdown');
- $container.append($btn);
-
- // Create inner menu
- var $menu = createDropdownMenu(opts.dropdown);
-
- // Menu position
- $menu.addClass('dropdown-'+(opts.position == 'right'? 'left' : 'right'));
-
- $container.append($menu);
- $result = $container;
- } else {
- $btn.addClass(positionClass);
- $btn.addClass(opts.className);
- $result = $btn;
- }
-
- $result.addClass('js-toolbar-action');
-
- if (_.isNumber(opts.index) && opts.index >= 0) {
- insertAt($toolbar, '.btn, .dropdown, h1', opts.index, $result);
- } else {
- $result.insertBefore($title);
- }
-}
-
-// Update all buttons
-function updateAllButtons() {
- $('.js-toolbar-action').remove();
- _.each(buttons, updateButton);
-}
-
-// When page changed, reset buttons
-events.bind('page.change', function() {
- updateAllButtons();
-});
-
-module.exports = {
- createButton: createButton
-};