~ubuntu-html5-theme-devs/ubuntu-html5-theme/15.04

« back to all changes in this revision

Viewing changes to 0.1/ambiance/js/pagestacks.js

  • Committer: CI Train Bot
  • Author(s): daker
  • Date: 2015-03-04 21:32:00 UTC
  • mfrom: (198.1.1 fix.trunk-last)
  • Revision ID: ci-train-bot@canonical.com-20150304213200-rithigtkx07rujur
Removed ActionsBar deps
Fixed the back button in PageStack
Fixed PageStack actions Fixes: #1427729, #1427909

Show diffs side-by-side

added added

removed removed

Lines of Context:
86
86
        }
87
87
    };
88
88
 
89
 
    function Pagestack(pagestack) {
 
89
    function Pagestack(pageStack) {
90
90
        this._pages = [];
91
 
        this._pagestack = pagestack;
 
91
        this._pageStack = pageStack;
 
92
        this._backBtn = document.querySelector('[data-role="back-btn"]');
92
93
    };
93
94
 
94
95
    Pagestack.prototype = {
161
162
        },
162
163
 
163
164
        onPageChanged : function(callback){
164
 
            this._pagestack.addEventListener("pagechanged", callback);
 
165
            this._pageStack.addEventListener("pagechanged", callback);
165
166
        },
166
167
 
167
168
        /**
170
171
        __setAllPagesVisibility: function (visible) {
171
172
            var visibility = visible ? "block" : "none";
172
173
 
173
 
            var children = [].slice.call(this._pagestack.children);
 
174
            var children = [].slice.call(this._pageStack.children);
174
175
            children.forEach(function(element) {
175
176
                var pageHelper = new Page();
176
177
                if (pageHelper.isPage(element)) {
177
 
                    el.style.display = visibility;
178
 
                    // treat footers separately
179
 
                    var footer = el.querySelector('footer');
180
 
                    if (footer)
181
 
                        footer.style.display = visibility;
 
178
                    element.style.display = visibility;
182
179
                }
183
180
            });
184
181
        },
194
191
         * @private
195
192
         */
196
193
        __dispatchPageChanged: function (page) {
 
194
            this._backBtn.disabled = (this.depth() ==  1);
 
195
 
 
196
            [].forEach.call( document.querySelectorAll('[data-role="actions-wrapper"]'), function(el) {
 
197
                el.style.display = 'none';
 
198
            });
 
199
 
 
200
            var pageActions = document.getElementById("actions_" + page);
 
201
            if (pageActions !== null) {
 
202
                pageActions.style.display = 'block';
 
203
            }
 
204
 
197
205
            var event = document.createEvent('Event');
198
206
            event.initEvent('pagechanged',true,true);
199
207
            event.page = page;
200
 
            this._pagestack.dispatchEvent(event);
 
208
            this._pageStack.dispatchEvent(event);
201
209
        },
202
210
    };
203
211