summaryrefslogtreecommitdiffstats
path: root/theme/javascript/apis/toolbar.js
diff options
context:
space:
mode:
Diffstat (limited to 'theme/javascript/apis/toolbar.js')
-rw-r--r--theme/javascript/apis/toolbar.js29
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
};