diff options
Diffstat (limited to 'core/js/js.js')
-rw-r--r-- | core/js/js.js | 67 |
1 files changed, 37 insertions, 30 deletions
diff --git a/core/js/js.js b/core/js/js.js index aefca235093..87b2d59f160 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -997,41 +997,48 @@ function initCore() { */ function setupMainMenu() { // toggle the navigation on mobile - if (window.matchMedia) { - var mq = window.matchMedia('(max-width: 600px)'); - var lastMatch = mq.matches; - var $toggle = $('#header #owncloud'); - var $navigation = $('#navigation'); - - function updateMainMenu() { - // mobile mode ? - if (lastMatch && !$toggle.hasClass('menutoggle')) { - // init the menu - OC.registerMenu($toggle, $navigation); - $toggle.data('oldhref', $toggle.attr('href')); - $toggle.attr('href', '#'); - $navigation.hide(); - } - else { - OC.unregisterMenu($toggle, $navigation); - $toggle.attr('href', $toggle.data('oldhref')); - $navigation.show(); - } + if (!OC._matchMedia) { + return; + } + var mq = OC._matchMedia('(max-width: 600px)'); + var lastMatch = mq.matches; + var $toggle = $('#header #owncloud'); + var $navigation = $('#navigation'); + + function updateMainMenu() { + // mobile mode ? + if (lastMatch && !$toggle.hasClass('menutoggle')) { + // init the menu + OC.registerMenu($toggle, $navigation); + $toggle.data('oldhref', $toggle.attr('href')); + $toggle.attr('href', '#'); + $navigation.hide(); } + else { + OC.unregisterMenu($toggle, $navigation); + $toggle.attr('href', $toggle.data('oldhref')); + $navigation.show(); + } + } - updateMainMenu(); + updateMainMenu(); - // TODO: debounce this - $(window).resize(function() { - if (lastMatch !== mq.matches) { - lastMatch = mq.matches; - updateMainMenu(); - } - }); - } + // TODO: debounce this + $(window).resize(function() { + if (lastMatch !== mq.matches) { + lastMatch = mq.matches; + updateMainMenu(); + } + }); } - setupMainMenu(); + if (window.matchMedia) { + // wrapper needed for unit tests due to PhantomJS bugs + OC._matchMedia = function(media) { + return window.matchMedia(media); + } + setupMainMenu(); + } } $(document).ready(initCore); |