diff options
Diffstat (limited to 'theme/javascript/apis/toolbar.js')
-rw-r--r-- | theme/javascript/apis/toolbar.js | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/theme/javascript/apis/toolbar.js b/theme/javascript/apis/toolbar.js index 1ed3fa8..dab3a79 100644 --- a/theme/javascript/apis/toolbar.js +++ b/theme/javascript/apis/toolbar.js @@ -1,9 +1,11 @@ define([ 'jQuery', - 'lodash' -], function($, _) { - var $toolbar = $('.book-header'); - var $title = $toolbar.find('h1'); + 'lodash', + 'core/events' +], function($, _, events) { + // List of created buttons + var buttons = []; + // Default click handler function defaultOnClick(e) { @@ -84,6 +86,15 @@ define([ dropdown: null }); + buttons.push(opts); + updateButton(opts); + } + + // Update a button + function updateButton(opts) { + var $toolbar = $('.book-header'); + var $title = $toolbar.find('h1'); + // Build class name var positionClass = 'pull-'+opts.position; @@ -127,6 +138,16 @@ define([ } } + // Update all buttons + function updateAllButtons() { + _.each(buttons, updateButton); + } + + // When page changed, reset buttons + events.bind('page.change', function() { + updateAllButtons(); + }); + return { createButton: createButton }; |